Dockerfile執行shell腳本報錯No such file or directory(又名 Dockerfile中sh腳本格式引發的災難)


工具的初衷是好的,但是工具如果不加以正確使用、或者不夠完善。那將帶來的是災難。

 

使用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修改保存后。重新構建啟動,可以了!!

 

 

忍不住想吐槽一句:這報錯報的也太人性化了,跟個鬼一樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM