• docker 多阶段构建


    构建镜像最具挑战性的一点是使镜像大小尽可能的小。Dockerfile中的每条指令都为图像添加了一个图层,您需要记住在移动到下一层之前清理任何不需要的工件。对于多阶段构建,您可以在Dockerfile中使用多个FROM语句。每个FROM指令可以使用不同的基础,并且每个指令都开始一个新的构建。您可以选择性地将工件从一个阶段复制到另一个阶段,从而在最终image中只留下您想要的内容。 例如vs生成的dockerfile:

    FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 80
    
    FROM microsoft/dotnet:2.1-sdk AS build
    WORKDIR /src
    COPY ["DockerWeb/DockerWeb.csproj", "DockerWeb/"]
    RUN dotnet restore "DockerWeb/DockerWeb.csproj"
    COPY . .
    WORKDIR "/src/DockerWeb"
    RUN dotnet build "DockerWeb.csproj" -c Release -o /app
    
    FROM build AS publish
    RUN dotnet publish "DockerWeb.csproj" -c Release -o /app
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "DockerWeb.dll"]

     参考:http://dockone.io/article/8179

  • 相关阅读:
    nginx启动
    java中有三种移位运算符
    easyUI属性汇总
    rose学习
    eclipse 启动到load workbench 后静止
    nvl函数
    Io 异常: Socket closed
    编译错误和运行时错误
    java 二进制编码
    MyFormat 幫助類
  • 原文地址:https://www.cnblogs.com/chenyishi/p/10784747.html
Copyright © 2020-2023  润新知