Docker 的多步构建挺好用的

2017-08-31 23:25:21 +08:00
 yuanfnadi

之前我都是用 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 的大小了。

2069 次点击
所在节点    问与答
3 条回复
yuanfnadi
2017-08-31 23:27:41 +08:00
hexo 的博客这样就能构建出一个很小的镜像了。

```
FROM daocloud.io/diamondyuan/blog-base:latest as buiild

MAINTAINER FandiYuan <georgeyuan@diamondyuan.com>
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/
terrawu
2017-08-31 23:29:13 +08:00
alpine 又要受益于这个特性了。
whileFalse
2017-09-01 07:45:31 +08:00
daocloud 的使用原生多部构建时缓存友好吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/387304

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX