作者VivianAnn (薇薇安安)
看板Linux
标题[问题] 如何取得dockerfile的log
时间Wed Jun 29 00:39:58 2022
各位好
本人想透过一个 dockerfile (builder.Dockerfile) 创建一个docker image
然而却在dockerfile的某一个步骤卡关,过了很长的时间仍毫无进展,如下图:
https://ibb.co/pxjHgxC
这个步骤包含非常多指令:
RUN --mount=type=cache,target=/var/cache/apt,sharing=private
--mount=type=cache,target=/var/lib/apt,sharing=private \
apt update && DEBIAN_FRONTEND=noninteractive apt install -qy gcc
make pkg-config curl libclang1-6.0 doxygen libi2c-dev git cmake libpcre3-dev
bison graphviz libcmocka-dev valgrind quilt libcurl4-gnutls-dev swig
debhelper devscripts libpam-dev autoconf-archive libssl-dev dbus libffi-dev
build-essential
请有没有办法透过完整的log来检查是哪个指令出错?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 168.127.214.203 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1656434403.A.DB7.html
1F:推 chang505: cmd拆开来执行看断在哪里。docker build 有报错吗? 06/29 00:50
2F:→ VivianAnn: 没有报错,就一直停在这个步骤。 06/29 00:53
3F:→ VivianAnn: 你说的拆cmd是把这整个command断开,一个个试吗? 06/29 00:57
4F:推 chang505: 是 06/29 01:14
5F:→ chang505: 不见得要拆得很碎 相依的前後分一下就好 06/29 01:14
6F:→ VivianAnn: 还是想问一下,有没有直接看log的方法,因为command非 06/29 01:20
7F:→ VivianAnn: 常多,这是一个复杂的系统 06/29 01:21
8F:→ fuyuanli: 我猜把 mount 拿掉就好了 也不影响 06/29 01:49
9F:→ VivianAnn: 目前的测试显示,只要走到apt install那边就会卡住, 06/29 03:13
10F:→ VivianAnn: 不管install的是什麽。 真的需要log了 06/29 03:13
11F:嘘 ChakraLinux: 红明显,先把-q拔掉 06/29 03:44
12F:→ VivianAnn: 楼上我试过了,还是卡住 06/29 05:04
13F:→ roccqqck: -q才有log 06/29 08:08
14F:→ roccqqck: -q去掉才有log 打错 06/29 08:08
15F:→ roccqqck: 你是用离线的方式apt install? 连不到外网是吗? 06/29 08:10
16F:推 roccqqck: 同意fuyu 先把mount都去掉 06/29 08:15
17F:推 roccqqck: 然後你断行在哪 指令这麽长你只有一个\ 是只有写两行吗 06/29 08:28
18F:→ roccqqck: ? 06/29 08:28
19F:推 holishing: 哪有人要抓错还设定 apt -q 参数... 06/29 08:46
20F:→ holishing: 甚至连 apt 都应该换成 apt-get... 06/29 08:46
21F:→ holishing: 原因有在看 log 就应该要知道了 06/29 08:46
22F:→ VivianAnn: 把-q去掉仍是卡,没有错误讯息 06/29 15:58
23F:嘘 brli7848: 我是觉得,在公司内,有mentor就去烦,不是找免费外包… 06/29 16:58
24F:推 roccqqck: 如果-q去掉还没有log 表示你在前面就出错了阿 06/29 22:10
25F:→ roccqqck: 你应该mount那边就死了 连apt update都没log 06/29 22:12
26F:→ VivianAnn: 我把mount都去掉还是不行,怪怪的 06/30 01:50
27F:推 roccqqck: 可能你换行之类有写错 自己检查吧 06/30 08:08
28F:→ roccqqck: apt update不可能没log 大概换行之类错根本没执行 06/30 08:15
29F:推 Typebrook: 我觉得可以先不用 docker build,先在 base image 跑 06/30 08:19
30F:→ Typebrook: 这些指令就好,这样抓错比较快 06/30 08:19
31F:→ m8403051: 你要不要一步一步执行? 到 cli 复制贴上检查指令 06/30 10:48
32F:→ m8403051: 或是移除掉机敏指令, 把 dockerfile 丢出来 06/30 10:49
33F:→ m8403051: 目前至少看到两个错误 06/30 10:59
34F:→ m8403051: 1. --mount type=cache 06/30 10:59
35F:→ m8403051: 2. 指令之间是 && \, 不是只有 \, 只有 \ 是同指令 06/30 11:00
36F:→ m8403051: mount 那行应该是我弄错了 06/30 11:02