之前我都是用 daoclou 进行多步构建,先一个镜像 build 好,然后提取出文件,再复制到另外一个镜像里
compile:
build_dir: /
cache: true
dockerfile_path: /Dockerfile/Dockerfile.build
extract:
- /blog
package:
build_dir: /
cache: true
dockerfile_path: /Dockerfile/Dockerfile.deploy
然后搜索了一下 发现 docker 原生支持多步构建了。 然后在 daocloud 里试了一下啊也支持。
FROM gradle:4.0.1-alpine as build
MAINTAINER FandiYuan <georgeyuan@diamondyuan.com>
ADD ./ /tmp/
RUN cd /tmp && \
gradle build
FROM java:8-jre-alpine
COPY --from=build /tmp/build/libs/diamond-yuan-fast-airport-0.01.jar /
ENTRYPOINT ["java", "-server", "-jar", "/diamond-yuan-fast-airport-0.01.jar"]
在采用多步构建之前,镜像大小在 150m 左右,采用了多步构建以后,只有 70m、基本上就是 jre 的大小了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.