Docker 在控制台输出中构建缺少的中间层
Docker Build missing intermediate layers in console output
不知道 Docker / Shell / BigSur 更新是否存在问题,但正常的 Docker 构建命令如:
docker build -f Dockerfile -t MYIMAGE .
最近开始更改默认输出,现在缺少中间层:
VS.包含中间层 ID 的旧输出:
我们如何触发此信息的输出,因为官方文档对此没有任何说明。
Docker version 20.10.2
谢谢和最诚挚的问候
BuildKit 是 Docker 的新构建后端,具有许多有用的新功能和更快的构建(请参阅 https://pythonspeed.com/articles/docker-buildkit/ 了解其有用的原因)。
但是,它加快速度的方法之一是不存储中间层。
从 2020 年秋季发布的 Docker Desktop 开始,默认启用 BuildKit。但是,您可以在“设置”中禁用它并获得旧行为。然而,这将失去 BuildKit 的加速和功能,因此更好的方法可能是弄清楚如何在没有它的情况下实现你想要的。
例如,如果这是“我如何调试失败的构建”,您可以只注释掉 Docker 文件中以失败行开头的所有行,然后重新构建;由于缓存,它会很快,然后你就有了用于调试的中间图像。
不知道 Docker / Shell / BigSur 更新是否存在问题,但正常的 Docker 构建命令如:
docker build -f Dockerfile -t MYIMAGE .
最近开始更改默认输出,现在缺少中间层:
VS.包含中间层 ID 的旧输出:
我们如何触发此信息的输出,因为官方文档对此没有任何说明。
Docker version 20.10.2
谢谢和最诚挚的问候
BuildKit 是 Docker 的新构建后端,具有许多有用的新功能和更快的构建(请参阅 https://pythonspeed.com/articles/docker-buildkit/ 了解其有用的原因)。
但是,它加快速度的方法之一是不存储中间层。
从 2020 年秋季发布的 Docker Desktop 开始,默认启用 BuildKit。但是,您可以在“设置”中禁用它并获得旧行为。然而,这将失去 BuildKit 的加速和功能,因此更好的方法可能是弄清楚如何在没有它的情况下实现你想要的。
例如,如果这是“我如何调试失败的构建”,您可以只注释掉 Docker 文件中以失败行开头的所有行,然后重新构建;由于缓存,它会很快,然后你就有了用于调试的中间图像。