0
假设有两个码头工人组成,其图像有以下RUN
步骤服务:是否可以在docker-compose中创建中间图像?
FROM base
RUN step1
RUN step2
和
FROM base
RUN step1
RUN step3
假设每一步是有些冗长。
简易方法,具有两个Dockerfile
S作为以上是次优的(如步骤1在初始docker-compose up
期间执行两次)和不DRY(步骤1重复两次,特别是坏,如果步骤1是相当令人费解)
方法我看到的,手动创建intermediate
图像:
FROM base
RUN step1
然后将其与这两个Dockerfile
小号用于:
FROM intermediate
RUN step2
FROM intermediate
RUN step3
并不理想,因为docker-compose up
将不再适用,因为它要求用户首先手动创建此中间图像。
有没有办法在docker-compose
之内完全做到这一点?
这是一种答案。没有意识到码头工人将重新使用在创建另一个图像时创建的缓存。第1步可能是任何一组被认为运行缓慢的步骤,并且您希望避免重新运行。漂亮的建筑不是要求的一部分,因为图像不打算在撰写之外使用。 – Blanka
不知道'哈哈'来自何处,意味着'预先构建'。如果你对如何构建Docker文件有所了解,你可以从缓存中获得一些很大的好处。 – johnharris85