五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

shell自動拉取鏡像并運行容器的shell腳本

發(fā)布日期:2022-07-20 19:56 | 文章來源:CSDN

情景再現(xiàn)

最近有一個部署服務,是具有絕對外網(wǎng)隔離的環(huán)境,不能構建自動化的發(fā)布服務,項目大體完工,但是改動的細節(jié)還是很多很小,存在一個頻繁的發(fā)版情況。為了方便的發(fā)版,我只能基于shell構建一個簡單的自動化腳本

開發(fā)環(huán)境

腳本編輯工具:win10+vscode
腳本運行環(huán)境:centos7

開發(fā)過程

shell腳本基礎
Shell是一個用 C 語言編寫的程序。Shell 既是一種命令語言(腳本),又是一種程序設計語言。
簡單理解就是和windos中cmd一樣的一種命令語言,一種批處理的腳本類似的東西。

shell腳本的首行指定了shell腳本解釋器的路徑,而且這個指定路徑只能放在文件的第一行

#!/bin/bash

查看自己linux系統(tǒng)的默認解析:echo $SHELL

[root@localhost ~]# echo $SHELL
/bin/bash

echo 輸出文本,相當于print命令,console命令

echo -e “\033[32m 綠色文字 \033[0m”

會輸出帶有顏色的文字,可以將我們自己的輸出和docker的輸出加以區(qū)分

完成代碼塊,運行腳本,輸入鏡像版本,將自動拉取指定版本鏡像并運行創(chuàng)建一個新的容器

#!/bin/bash
cml_version=""
cml_url="registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_2022${cml_version}_1"
sudo echo -e "\033[32m --start-- \033[0m"
sudo echo -e "\033[33m please input version: \033[0m"
read -r cml_version
cml_url="registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_2022${cml_version}_1"
sudo echo -e "\033[33m cml_version: $cml_url \033[0m"
sudo docker pull "$cml_url"
sudo echo -e "\033[32m 1.pull image from route \033[0m"
sudo docker stop c_llpcmlapi 
sudo docker rm c_llpcmlapi 
sudo echo -e "\033[32m 2.stop&rm c_llpcmlapi \033[0m"
sudo docker rmi i_llpcmlapi
sudo echo -e "\033[32m 3.rmi i_llpcmlapi \033[0m"
sudo docker tag "$cml_url" i_llpcmlapi 
sudo echo -e "\033[32m 4.tag image  \033[0m"
docker run -di-v /home/llp_docker/llpcmlapi/appsettings.json:/appsettings.json --name c_llpcmlapi -p 8089:80 i_llpcmlapi 
sudo echo -e "\033[32m 5.run c_llpcmlapi \033[0m"
sudo docker ps 

遇到的問題

報錯:$‘\r’: command not found

解決: 由于shell腳本很簡單,我直接在windos下用記事本寫了一個.sh的文件,執(zhí)行的時候重視報錯各種錯誤,而且有時可能執(zhí)行成功,有時會失敗,猜測可能是編碼的問題,于是用vscode打開,重新保存,還是不行,后來了解到原來windows下編譯的shell文件,每一行的結尾是\n\r,而在linux下文件的結尾是\n,所以我們需要替換掉\r

cat -v 顯示window下的回車字符
tr -d ‘\r’ < 原始文件 > 新文件:替換文件中的回車字符

[root@localhost llpcode]# cat -v cmlapi.sh
^M
sudo echo -e "\033[32m --start-- \033[0m"^M
sudo docker pull registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_20220603_1 ^M
sudo echo -e "\033[32m 1.pull image from route \033[0m"^M
sudo docker rmi i_llpcmlapi^M
sudo echo -e "\033[32m 2.rmi i_llpcmlapi \033[0m"^M
sudo docker tag registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_20220603_1 i_llpcmlapi ^M
sudo echo -e "\033[32m 3.tag image  \033[0m"^M
sudo docker stop c_llpcmlapi ^M
sudo docker rm c_llpcmlapi ^M
sudo echo -e "\033[32m 4.stop&rm c_llpcmlapi \033[0m"^M
docker run -di-v /home/llp_docker/llpcmlapi/appsettings.json:/appsettings.json --name c_llpcmlapi -p 8089:80 i_llpcmlapi ^M
sudo echo -e "\033[32m 5.run c_llpcmlapi \033[0m"^M
sudo docker ps [root@localhost llpcode]# tr -d '\r' < cmlapi.sh > cmlapi_.sh
[root@localhost llpcode]# ls
blogcore  cmlapi_.sh  cmlapi.sh  vue_xhg_cml

效果如下

報錯:read without -r will mangle backslashes.

解決:shell腳本缺少權限, chmod +x 腳本名稱 進行權限賦值

報錯:read without -r will mangle backslashes.

解決:Read將解釋空格和換行符之前的反斜杠,通常您只想讀取數(shù)據(jù),這就是read -r所做的

報錯:$Permission denied

解決:shell腳本缺少權限, chmod +x 腳本名稱 進行權限賦值

到此這篇關于shell自動拉取鏡像并運行容器的shell腳本的文章就介紹到這了,更多相關shell自動拉取鏡像并運行 內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

美國服務器租用

版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部