想象一下两个docker撰写服务,其图像具有以下RUN
步骤:
FROM base
RUN step1
RUN step2
和
FROM base
RUN step1
RUN step3
假设每一步都有点冗长。
如上所述,有两个Dockerfile
s的天真方法是次优的(因为step1在初始docker-compose up
期间执行两次)而不是DRY(step1重复两次,如果step1非常复杂则特别糟糕)
我看到的另一种方法是手动创建intermediate
图片:
FROM base
RUN step1
然后与这两个Dockerfile
s:
FROM intermediate
RUN step2
FROM intermediate
RUN step3
不是最理想的,因为docker-compose up
将不再开箱即用,因为它将要求用户首先手动创建此中间图像。
是否完全在docker-compose
内完成此操作?
答案 0 :(得分:2)
第一步是什么?如果守护进程缓存并重用它,它是否真的相同。没有设置可以预先构建'一张图片供以后使用。它被认为超出了撰写范围 - https://github.com/docker/compose/issues/1547#issuecomment-112254616。