docker~不使用yml批量部署(shu)服務
有(you)時(shi)(shi),我們(men)在進行持續集成環(huan)境(jing)有(you)時(shi)(shi),有(you)時(shi)(shi)yml環(huan)境(jing)是沒有(you)的,它(ta)可(ke)能只提供了docker工具,而docker-compose這(zhe)個大家(jia)伙(huo)可(ke)能不被(bei)提供,而這(zhe)樣我們(men)如果(guo)希望(wang)自動化構建解(jie)決方案下所有(you)的項目,就需(xu)要寫sh腳本了,需(xu)要把(ba)需(xu)要打包(bao),發(fa)布,鏡像(xiang)的項目寫到咱們(men)的數組里,然后去遍(bian)歷它(ta)!
一 批(pi)量還原(yuan)和發布項目
#!/bin/sh # 聲明需要發(fa)布(bu)的項目 declare -a projectList=( '../Beijing.Tax' '../Jiangsu.Tax' ) # 恢復包依(yi)賴與發布 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" # 聲明需要發布(bu)的項目(mu) 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/*"來查看(kan)所有以lind開頭的鏡像(xiang)文(wen)件

一般地,我們(men)的腳本都(dou)放在解決方案的根目錄,建立一個deploy,把自動化腳本放進去就行(xing)了

感謝各位的閱讀!
有時,達(da)到一種目的(de)的(de)方式可(ke)能是多(duo)種多(duo)樣的(de),選擇適合我們的(de)一種就可(ke)以(yi)了!