文章出處

回到目錄

有時,我們在進行持續集成環境有時,有時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,把自動化腳本放進去就行了

感謝各位的閱讀!

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

 回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()