【问题标题】:Build and Publish Docker Image to Prod Env using Asp.Net Core使用 Asp.Net Core 构建和发布 Docker 镜像到 Prod Env
【发布时间】:2018-10-23 01:23:51
【问题描述】:

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

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

【问题讨论】:

    标签: docker asp.net-core visual-studio-2017 .net-core docker-compose


    【解决方案1】:

    我已经想通了。 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 流程,而不是手动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2017-03-28
      • 2020-10-06
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多