工具的初衷是好的,但是工具如果不加以正確使用、或者不夠完善。那將帶來的是災難。
使用Dockerfile進行鏡像構建。里面有這么一行:
我在ENTRYPOINT處指定了一個腳本。它是在構建鏡像時,從一個目錄中copy進去的。它將會在docker run時會去執行run.sh里的內容。
但神奇的問題發生了。我docker build構建鏡像成功完畢。docker run啟動鏡像時報錯:
就這么一行!!我啟動時指定鏡像沒有加-d后台啟動,打印的實時日志。就一行這玩意':No such file or directory
沒了,別的什么都沒打印。
WTF!
漫長排查路~~~~
文件目錄沒問題;
Dockerfile語法查了查,沒問題;
sh腳本內容看了下,也沒發現啥問題。
問題在哪呢??
嘗試在["/run.sh","-x"] 這里嘗試加過-t、-x、-c啥的。基本都試了一遍。想着至少能定位下行號,或者多打印點什么出來,但沒有。日志仍舊只有那一行,一個字符都不帶多的。
下去抽顆smoke吧,這種問題就是來搞心態的。
迎着小風,聞着草味,思緒繁雜
忽然想起來,以前碰到過sh腳本的格式問題導致的報錯。叫什么bad inte... no such file directory(時間久記不清了,后查證叫:bad interpreter: No such file or directory)。
這倆好像看起來有點像。
再一想,好像更像了。
趕緊掐滅 上去逮着vi run.sh。:set ff 一看。挖槽 真的是dos....
萬只草泥馬開始奔襲。
:set ff=unix修改保存后。重新構建啟動,可以了!!
忍不住想吐槽一句:這報錯報的也太人性化了,跟個鬼一樣。