今天在使用 Laravel-Sail 構建完映象後,使用 sail up
命令啟動容器時,發現sail-7.4/app
映象構建的容器啟動失敗,執行日誌顯示發生了以下錯誤:
kkadmin.test_1 | /usr/bin/env: 'bash\r': No such file or directory
錯誤截圖如下:
經過查閱資料,找到了錯誤原因:
主要是 shell 檔案第一行的約定語句的
bash
後面多了’\r’字元的原因,在Linux終端下,輸出’\r’會什麼都不顯示,只是把游標移到行首,因此,終端雖然輸出了”/usr/bin/env bash”,但是遇到’\r’後,游標會移到到行首,接著輸出錯誤資訊”No such file or directory”,最終,bash指令碼執行失敗。
應該是無意間使用了 windows 編輯器更改了 shell 檔案 start-container
,解決辦法:
在 Ubuntu 子系統中,進入專案目錄,使用 vim 開啟 docker/7.4/start-container
檔案(如果你沒有釋出過Dockerfile檔案,該檔案位於:vendor/laravel/sail/runtimes/7.4/start-container
),在 vim 介面中,按 Esc
鍵,鍵入以下命令:
:set ff
果然顯示的格式為: fileformat=dos
將格式轉為 unix 格式:
:set ff=unix
再次檢視檔案格式:
:set ff
現在顯示檔案格式為: fileformat=unix
儲存檔案:
:wq
然後刪除構建好的sail-7.4/app
映象,重新構建映象:
sail build --no-cache
構建完成後重新啟動服務:
sail up
大功告成!
本作品採用《CC 協議》,轉載必須註明作者和本文連結