Docker容器運(yùn)行l(wèi)aunch.sh文件時(shí)Permissi
運(yùn)行./*.sh腳本文件時(shí)出現(xiàn)Permission denied錯(cuò)誤的原因通常是權(quán)限不夠,解決辦法是chmod +x *.sh

項(xiàng)目使用阿里云鏡像服務(wù)自動(dòng)構(gòu)建Docker鏡像,本地開(kāi)發(fā)環(huán)境構(gòu)建時(shí)不能重現(xiàn)問(wèn)題。
詳細(xì)排查后發(fā)現(xiàn)Dockerfile中CMD調(diào)用launch.sh的寫法是CMD ["./launch.sh"],問(wèn)題就出在這里,修改為:CMD ["sh", "launch.sh"],問(wèn)題解決。原因可能是開(kāi)發(fā)環(huán)境使用的Win10沒(méi)有正確設(shè)置.sh文件權(quán)限,也可能是鏡像服務(wù)自動(dòng)構(gòu)建時(shí)沒(méi)有正確保留.sh文件權(quán)限。
關(guān)鍵還是分享下./launch.sh和sh launch.sh的3個(gè)區(qū)別:
./*.sh
sh *.sh
可執(zhí)行屬性不同
*.sh文件必須具有可執(zhí)行屬性
不必須具有可執(zhí)行屬性
執(zhí)行方式不同
使用*.sh腳本文件中第一行指定的命令來(lái)解釋和執(zhí)行,通常是:#!/bin/bash
使用shell工具sh解釋和執(zhí)行
兼容性不同
不受限于shell工具
受限于shell工具
了解更多相關(guān)內(nèi)容歡迎關(guān)注http://www.vecloud.com/
標(biāo)簽: