之前老版本我记得 docker build 如果失败也会在 docker images 里看到中间结果, 也就是失败之前的那个镜像.我之前的习惯是 run 那个镜像 然后手动执行下一条看为什么报错. 去 debug.
现在没有了, 失败了 docker images 里是空的.
请问专业的运维大佬是如何调试 dockerfile 的?
1
defunct9 2023-05-31 13:52:15 +08:00
开 ssh ,让我上去看看
|
2
SingeeKing 2023-05-31 13:52:53 +08:00 1
除非 multi-stage 不然应该不会存在所谓的「之前的那个镜像」的;这个可以用 BuildKit 然后指定 `--cache-to` 来保存每步缓存
|
3
chaleaochexist OP @SingeeKing 难道我记错了..
|
4
yasi 2023-05-31 14:03:05 +08:00
进入 images
docker run -ti --entrypoint /bin/sh xxx |
5
Latin 2023-05-31 14:03:48 +08:00
docker 的设置 buildkit 为 true 时会折叠每层的日志输出 并且构件这层报错时也会忽略,失败构建也会保存到镜像库中
|
6
photon006 2023-05-31 14:17:49 +08:00 1
加 progress 参数:
docker build --progress=plain --network=host -t hello/world:latest . |
7
hhjswf 2023-05-31 14:41:24 +08:00
肉眼扫一眼
|
8
tramm 2023-05-31 15:21:08 +08:00
问如何调试不如直接贴 Dockerfile 来的实在, 哈哈
|
9
taoge0224 2023-05-31 16:35:20 +08:00
call me
|
10
anubu 2023-05-31 16:40:30 +08:00 1
基础镜像挂源码卷拉一个容器,在容器里手动执行 Dockerfile 中的指令进行调试。
|