学海无涯

导航

为后端 Web API 创建 Dockerfile

  1. 在项目上点右键,创建 Dockerfile 文件。

#拉取 mcr.microsoft.com/dotnet/sdk:6.0 镜像并将其别名设置为 build
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
#将镜像中的工作目录设置为 /src
WORKDIR /src
#将本地 backend.csproj 的项目文件复制到刚创建的 /src 镜像目录中
COPY backend.csproj .
#在项目中调用 dotnet restore 恢复镜像中项目的依赖包
RUN dotnet restore
#将本地工作目录中的所有内容复制到镜像中
COPY . .
#在项目中调用 dotnet publish 发布
RUN dotnet publish -c release -o /app

#拉取 mcr.microsoft.com/dotnet/aspnet:6.0 镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0
#将镜像中的工作目录设置为 /app
WORKDIR /app
#公开端口 80 和 443
EXPOSE 80
EXPOSE 443
#将上面发布(publish)到 /app目录的应用程序构建好,然后复制到镜像的 /app 目录中
COPY --from=build /app .
#将镜像的入口点设置为 dotnet,并将 backend.dll 作为参数传递
ENTRYPOINT ["dotnet","backend.dll"]

4.  保存 Dockerfile,打开命令提示符,然后导航到保存该文件的目录。

5. 在Dockerfile所在项目的根目下(打开目录->右键->Open in Terminal),运行此命令以创建镜像,并使用名称 pizzabackend 标记映像:

docker build -t pizzabackend .

  这将运行当前目录中 Dockerfile 中的命令,并将标记 pizzabackend 应用于生成的映像。

6. 大量输出后,将生成映像。 键入 docker images 将显示计算机上所有映像的列表,其中将列出 pizzabackend

7. 若要运行 Web API 服务,请运行以下命令以使用 pizzabackend 映像启动新的 Docker 容器,并在端口 5200 上公开该服务:

docker run -it --rm -p 5200:80 --name pizzabackendcontainer pizzabackend
//查看容器
docker ps

  

8. 可以浏览到 http://localhost:5200/pizzainfo 并查看 Contoso Pizza 菜单的 JSON 表示形式。

参考:https://learn.microsoft.com/zh-cn/training/modules/dotnet-microservices/3-exercise-build-docker-image

将多个项目部署到Docker:https://www.cnblogs.com/friend/p/16717148.html

 

posted on 2022-09-21 16:21  宁静致远.  阅读(121)  评论(0编辑  收藏  举报