docker 多阶段构建
2024-10-11 19:43:32
构建镜像最具挑战性的一点是使镜像大小尽可能的小。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
最新文章
- Python pydoc.py
- IDEA使用(1)intellIJ idea 配置 svn
- c3p0数据库连接池死锁问题
- XE6移动开发环境搭建之IOS篇(4):VMware9里安装Mac OSX 10.8(有图有真相)
- 3.1 SharePreference
- unsigned long类型转换为CString出现的问题
- Android(java)学习笔记235:多媒体之计算机图形表示方式
- LeetCode_Flatten Binary Tree to Linked List
- jquery validate.addMethod 正则表达式 (自定义验证方法)
- asp.net检查服务器上目录或文件是否存在示例
- c++中sort()及qsort()的使用方法总结
- 微信小程序与webview交互实现支付
- SCRIPT438: 对象不支持“indexOf”属性或方法
- win10升级后,无法ping通vmware的centos解决方法
- linux基本格式和常用目录命令一
- Nginx负载均衡的五种策略
- 20179223《Linux内核原理与分析》第三周学习笔记
- C#.NET抽象类和接口的区别?
- QueryDSL
- Linq 综合写法