使用 Asp.Net Core 构建 Docker 镜像并将其发布到 Prod Env



我对如何为生产环境的 Asp.Net Core项目构建映像有点困惑,因为它应该使用aspnetcore映像而不是aspnetcore-build,有人可以解释如何为生产环境构建和推送映像的最佳方法,请问?

我在release模式下构建了解决方案,但我不确定 VS 是否使用aspnetcore映像创建了映像,因为当我发布 Docker 时说它正在从aspnetcore-build映像挂载映像。

我已经想通了。Visual Studio 在创建 Docker 文件时使用 Docker 多阶段构建,因此当它生成 Docker 映像时,最终它使用的是aspnetcore映像,这是在 Docker 文件上声明的最后一个阶段构建,并且它使用base阶段,实际上是aspnetcore映像。这是一个示例:

FROM microsoft/aspnetcore:2.0.5 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0.5-2.1.4 AS build
WORKDIR /src
COPY . .
RUN dotnet restore -nowarn:msb3202,nu1503
WORKDIR /src/src/Services/Catalog/Catalog.API
RUN dotnet build --no-restore -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Catalog.API.dll"]

因此,构建和发布 Docker 映像的推荐方法是从我们的 CI/CD 流程而不是手动

最新更新