构建镜像最具挑战性的一点是使镜像大小尽可能的小。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

最新文章

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

热门文章

  1. 在c#中设置Excel格式
  2. springboot自定义消息转换器HttpMessageConverter
  3. Linux符号连接的层数过多
  4. Spring框架的核心功能之AOP概述
  5. 使用threejs点云秀出酷炫的图片效果(一)
  6. Linux readelf命令
  7. linux bluez
  8. 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
  9. Jmeter获取不到cookie(备注:前面和后面的几个步骤都可以获取到cookie)
  10. 客户端、服务器端中JSON字符串与对象的转换