您好,登錄后才能下訂單哦!
本篇文章為大家展示了在docker中使用 CMD執行sh腳本時出現 not found/run.sh:報錯如何解決,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Dockerfile配置沒有問題,為什么執行ENTRYPOINT命令時一直錯誤?
容器一啟動就退出了。
查了不少資料,想了好久才發現原因。
run.sh是被COPY指令復制到容器中的,而本機是windows,默認的換行符是\n,故而復制過去無法被執行。
解決辦法很簡單,切換文件格式為LF即可。
補充知識:docker中啟動容器時CMD調用的sh腳本中if命令報未預期的符號 if[[的解決辦法
最近通過Dockerfile編寫鏡像,CMD中調用的是sh腳本(start.sh)進行啟動容器,通過docker run啟動時,啟動不成功,進行docker logs 容器ID,發現報錯為:未預期的符號 if [[
我直接在外部linux系統調用執行start.sh是成功的,通過docker exec 進入容器,在容中調用start.sh也未報錯,命令中需要啟動的程序都成功啟動。
腳本直接執行沒問題,通過docker run卻報錯,百思不得其解。
start.sh中報錯代碼段如下
if [[ -e /home/dc/testnn-aaa.zip ]];then rm -rf /home/testnn-aaa unzip -q -o -d /home testnn-aaa.zip echo "unzip zip finished" else echo "dc zip not exist" fi
經過查閱比較,因為我的start.sh在報錯語句之前也有if語句,但是沒報錯,發現兩處區別為第一處if使用的是單[],將代碼改為[],則成功,修改如下:
if [ -e /home/dc/testnn-aaa.zip ];then
上述內容就是在docker中使用 CMD執行sh腳本時出現 not found/run.sh:報錯如何解決,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。