docker~不使用yml批量部署服務
阿新 • • 發佈:2018-12-29
有時,我們在進行持續整合環境有時,有時yml環境是沒有的,它可能只提供了docker工具,而docker-compose這個大傢伙可能不被提供,而這樣我們如果希望自動化構建解決方案下所有的專案,就需要寫sh指令碼了,需要把需要打包,釋出,映象的專案寫到咱們的數組裡,然後去遍歷它!
一 批量還原和釋出專案
#!/bin/sh # 宣告需要釋出的專案 declare -a projectList=( '../Beijing.Tax' '../Jiangsu.Tax' ) # 恢復包依賴與釋出 for project in "${projectList[@]}" do echo -e "\e[33mWorking on $(pwd)/$project" echo -e "\e[33m\tRemoving old publish output" pushd $(pwd)/$project rm -rf obj/Docker/publish echo -e "\e[33m\tRestoring project" dotnet restore echo -e "\e[33m\tBuilding and publishing projects" dotnet publish -o obj/Docker/publish popddone
二 批量生成映象
#!/bin/sh export Registry_Url="ciregistry.i-counting.cn:8443" # 宣告需要釋出的專案 declare -a projectList=( '../Beijing.Tax,lind/bejing.tax' '../Jiangsu.Tax,lind/jiangsu.tax' ) for project in "${projectList[@]}" do arr=(${project//,/ }) dir=${arr[0]} image=${arr[1]} echo "dir" echo $dir pushd $(pwd)/$dir docker build --no-cache --pull -t $image ./ docker tag $image $Registry_Url/$image #docker push $Registry_Url/$image done
然後我們可以通過docker images "lind/*"來檢視所有以lind開頭的映象檔案
一般地,我們的指令碼都放在解決方案的根目錄,建立一個deploy,把自動化指令碼放進去就行了
感謝各位的閱讀!
有時,達到一種目的的方式可能是多種多樣的,選擇適合我們的一種就可以了!