使用Docker Compose如何查看构建中间缓存容器ID?Buildkit/BuildX是否支持?
查看Buildkit/BuildX构建失败时的中间容器ID
不需要切换回旧构建器,Buildkit/BuildX本身支持两种简便方式获取中间容器ID:
方式一:强制输出详细构建日志
构建时添加--progress=plain参数,会强制输出无格式的详细日志,其中包含每个构建步骤对应的中间容器ID。示例命令:# 直接用buildx构建 docker buildx build --progress=plain --no-cache . # 用Compose构建指定服务 docker compose build --progress=plain my-service日志中会显示类似
container: <容器ID>的字段,这个就是对应步骤的中间容器ID。方式二:保留失败后的中间容器
设置环境变量BUILDKIT_KEEP_BUILD_CONTAINERS=1,让Buildkit在构建失败后不自动清理中间容器。之后可以用docker ps -a列出所有容器,找到对应失败步骤的容器并进入调试。示例命令:# buildx构建 BUILDKIT_KEEP_BUILD_CONTAINERS=1 docker buildx build . # Compose构建指定服务 BUILDKIT_KEEP_BUILD_CONTAINERS=1 docker compose build my-service执行后用
docker exec -it <容器ID> sh即可进入失败步骤的容器环境调试。
注意:如果构建步骤有缓存,可能会跳过部分环节,建议加上--no-cache参数确保所有步骤都执行,以便获取完整的中间容器信息。
内容的提问来源于stack exchange,提问作者four43
相关产品推荐
相关产品推荐

