作者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/m.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