为后端 Web API 创建 Dockerfile
-
在项目上点右键,创建 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