之前我都是用 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 <[email protected]>
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 的大小了。
1
yuanfnadi OP hexo 的博客这样就能构建出一个很小的镜像了。
``` FROM daocloud.io/diamondyuan/blog-base:latest as buiild MAINTAINER FandiYuan <[email protected]> ADD / /blog RUN mv /temp/node_modules /blog/node_modules && \ hexo g FROM nginx:stable-alpine copy COPY --from=build /blog/public/ /usr/share/nginx/html/ ``` https://blog.diamondyuan.com/2017/08/10/Continuous_Deployment_for_Hexo/ |
2
terrawu 2017-08-31 23:29:13 +08:00
alpine 又要受益于这个特性了。
|
3
whileFalse 2017-09-01 07:45:31 +08:00
daocloud 的使用原生多部构建时缓存友好吗
|