1. 程式人生 > >docker~不使用yml批量部署服務

docker~不使用yml批量部署服務

回到目錄

有時,我們在進行持續整合環境有時,有時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 popd
done

二 批量生成映象

#!/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,把自動化指令碼放進去就行了

感謝各位的閱讀!

有時,達到一種目的的方式可能是多種多樣的,選擇適合我們的一種就可以了!

 回到目錄