文章出處
文章列表
有時,我們在進行持續集成環境有時,有時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,把自動化腳本放進去就行了
感謝各位的閱讀!
有時,達到一種目的的方式可能是多種多樣的,選擇適合我們的一種就可以了!
文章列表
全站熱搜