運行./*.sh腳本文件時出現(xiàn)Permission denied錯誤的原因通常是權限不夠,解決辦法是chmod +x *.sh
創(chuàng)新互聯(lián)公司自2013年起,公司以成都網(wǎng)站建設、網(wǎng)站制作、系統(tǒng)開發(fā)、網(wǎng)絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶千余家,涉及國內多個省份客戶。擁有多年網(wǎng)站建設開發(fā)經驗。為企業(yè)提供專業(yè)的網(wǎng)站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。
項目使用阿里云鏡像服務自動構建Docker鏡像,本地開發(fā)環(huán)境構建時不能重現(xiàn)問題。
詳細排查后發(fā)現(xiàn)Dockerfile中CMD調用launch.sh的寫法是CMD ["./launch.sh"],問題就出在這里,修改為:CMD ["sh", "launch.sh"],問題解決。原因可能是開發(fā)環(huán)境使用的Win10沒有正確設置.sh文件權限,也可能是鏡像服務自動構建時沒有正確保留.sh文件權限。
關鍵還是分享下./launch.sh和sh launch.sh的3個區(qū)別:
./*.sh | sh *.sh | |
可執(zhí)行屬性不同 | *.sh文件必須具有可執(zhí)行屬性 | 不必須具有可執(zhí)行屬性 |
執(zhí)行方式不同 | 使用*.sh腳本文件中第一行指定的命令來解釋和執(zhí)行,通常是:#!/bin/bash | 使用shell工具sh解釋和執(zhí)行 |
兼容性不同 | 不受限于shell工具 | 受限于shell工具 |