我最近切换到多阶段 docker 构建,中间构建似乎没有任何缓存。我不确定这是否是 docker 限制、不可用或者我做错了什么。
我正在拉下最终构建并在新构建开始时执行 --cache-from,但它始终运行完整构建。
最佳答案
这似乎是 docker 本身的限制,并在此问题下进行了描述 - https://github.com/moby/moby/issues/34715
解决方法是:
- 使用 --target 构建中间阶段
- 将中间图像推送到注册表
- 使用 --target 构建最终图像并使用多个 --cache-from 路径,列出所有中间图像和最终图像
- 将最终图像推送到注册表
- 对于后续构建,首先从注册表中拉取中间 + 最终图像
关于docker - 是否可以缓存多阶段 docker 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646303/