實現(xiàn)腳本自動部署docker
前言:
使用場景是 我這邊的一個單體項目需要多一個多副本的部署方式,一直輸入重復命令我實在是嫌煩了,使用寫了一個腳本來一鍵更新部署上去。jar包都是我手動上傳的,沒有把包傳入公網(wǎng)庫里。
之所以記錄就是因為遇到了幾個沒有遇到過的問題記錄以下。
?示例:
?
省略每次輸入?chmod +x script
?這個命令,可以將腳本復制到一個在系統(tǒng) PATH 中的目錄中,這樣就可以在任何地方執(zhí)行它,而無需添加?./
?前綴或手動更改權(quán)限。
可以將腳本復制到?/usr/local/bin/
?目錄中:
?
sudo?cp 腳本文件名 /usr/local/bin/
?
然后就可以在任何地方都只需要輸入 腳本名稱就可以執(zhí)行。
錯誤一:-bash: /usr/local/bin/runpoject: Permission denied 沒有權(quán)限的命令
這個錯誤是由于權(quán)限問題引起的,它表示你沒有足夠的權(quán)限來執(zhí)行?/usr/local/bin/runpoject
?腳本。這是因為?/usr/local/bin
?目錄通常需要超級用戶權(quán)限才能寫入。
你可以嘗試以下步驟來解決這個問題:
使用嘗試使用以下命令:
?sudo?chmod +x /usr/local/bin/script
錯誤二:-bash: /usr/local/bin/runpoject: /bin/bash^M: bad interpreter: No such file or directory 轉(zhuǎn)義符的原因
這個錯誤消息表明你的腳本文件包含了 Windows 風格的換行符(\r\n
),而不是 Linux 風格的換行符(\n
)。這種問題可能會導致解釋器無法找到正確的路徑。
要解決這個問題,你可以使用文本編輯器將腳本文件轉(zhuǎn)換為 Linux 風格的換行符。
你可以使用?dos2unix
?命令來進行轉(zhuǎn)換,如果系統(tǒng)沒有安裝這個命令,可以嘗試使用?sed
?命令來進行轉(zhuǎn)換,如下所示:
sed -i?'s/\r$//' /usr/local/bin/script
親測可以解決問題。
轉(zhuǎn)自:http://www.npqdlp.com/