看板 Linux 關於我們 聯絡資訊
各位好 本人想透過一個 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://www.ptt.cc/bbs/Linux/M.1656434403.A.DB7.html
chang505: cmd拆開來執行看斷在哪裡。docker build 有報錯嗎? 06/29 00:50
VivianAnn: 沒有報錯,就一直停在這個步驟。 06/29 00:53
VivianAnn: 你說的拆cmd是把這整個command斷開,一個個試嗎? 06/29 00:57
chang505: 是 06/29 01:14
chang505: 不見得要拆得很碎 相依的前後分一下就好 06/29 01:14
VivianAnn: 還是想問一下,有沒有直接看log的方法,因為command非 06/29 01:20
VivianAnn: 常多,這是一個複雜的系統 06/29 01:21
fuyuanli: 我猜把 mount 拿掉就好了 也不影響 06/29 01:49
VivianAnn: 目前的測試顯示,只要走到apt install那邊就會卡住, 06/29 03:13
VivianAnn: 不管install的是什麼。 真的需要log了 06/29 03:13
ChakraLinux: 紅明顯,先把-q拔掉 06/29 03:44
VivianAnn: 樓上我試過了,還是卡住 06/29 05:04
roccqqck: -q才有log 06/29 08:08
roccqqck: -q去掉才有log 打錯 06/29 08:08
roccqqck: 你是用離線的方式apt install? 連不到外網是嗎? 06/29 08:10
roccqqck: 同意fuyu 先把mount都去掉 06/29 08:15
roccqqck: 然後你斷行在哪 指令這麼長你只有一個\ 是只有寫兩行嗎 06/29 08:28
roccqqck: ? 06/29 08:28
holishing: 哪有人要抓錯還設定 apt -q 參數... 06/29 08:46
holishing: 甚至連 apt 都應該換成 apt-get... 06/29 08:46
holishing: 原因有在看 log 就應該要知道了 06/29 08:46
VivianAnn: 把-q去掉仍是卡,沒有錯誤訊息 06/29 15:58
brli7848: 我是覺得,在公司內,有mentor就去煩,不是找免費外包… 06/29 16:58
roccqqck: 如果-q去掉還沒有log 表示你在前面就出錯了阿 06/29 22:10
roccqqck: 你應該mount那邊就死了 連apt update都沒log 06/29 22:12
VivianAnn: 我把mount都去掉還是不行,怪怪的 06/30 01:50
roccqqck: 可能你換行之類有寫錯 自己檢查吧 06/30 08:08
roccqqck: apt update不可能沒log 大概換行之類錯根本沒執行 06/30 08:15
Typebrook: 我覺得可以先不用 docker build,先在 base image 跑 06/30 08:19
Typebrook: 這些指令就好,這樣抓錯比較快 06/30 08:19
m8403051: 你要不要一步一步執行? 到 cli 複製貼上檢查指令 06/30 10:48
m8403051: 或是移除掉機敏指令, 把 dockerfile 丟出來 06/30 10:49
m8403051: 目前至少看到兩個錯誤 06/30 10:59
m8403051: 1. --mount type=cache 06/30 10:59
m8403051: 2. 指令之間是 && \, 不是只有 \, 只有 \ 是同指令 06/30 11:00
m8403051: mount 那行應該是我弄錯了 06/30 11:02