Linux~Sh腳本一點自己的總結
從.netCore開源項目(mu)來看,eShopOnContainers來說,它的(de)部(bu)署(shu)是跨(kua)平臺的(de),可(ke)(ke)以部(bu)署(shu)在(zai)linux,docker上,在(zai)linux上運行它也可(ke)(ke)以寫一(yi)些集成的(de)小腳本,這是微信工程(cheng)師為我(wo)們提供一(yi)個部(bu)署(shu)發布方案的(de)SH腳本
#!/bin/bash declare -a projectList=( '../src/Services/Catalog/Catalog.API' '../src/Services/Basket/Basket.API' '../src/Services/Ordering/Ordering.API' '../src/Services/Identity/Identity.API' '../src/Web/WebMVC' '../src/Web/WebSPA' '../src/Web/WebStatus' ) # Build SPA app # pushd $(pwd)../src/Web/WebSPA # npm run build:prod 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 # remove old docker images: images=$(docker images --filter=reference="eshop/*" -q) if [ -n "$images" ]; then docker rm $(docker ps -a -q) -f echo "Deleting eShop images in local Docker repo" echo $images docker rmi $(docker images --filter=reference="eshop/*" -q) -f fi # No need to build the images, docker build or docker compose will # do that using the images and containers defined in the docker-compose.yml file.
上面(mian)的解決主要體現了(le)發布時用的一些(xie)命(ming)令,如數組,遍歷(li),條(tiao)件(jian)語(yu)(yu)句(ju),刪除文件(jian),發布語(yu)(yu)句(ju)等,我(wo)自己寫練了(le)練手
declare -a arr=(1 2 3 4 5 ) for i in "${arr[@]}" do if [ $i == 2 ] then echo "a is equal to 2" else echo "a is not equal to 2" fi done declare -a projectList=( '../src/Services/Catalog/Catalog.API' '../src/Services/Basket/Basket.API' '../src/Services/Ordering/Ordering.API' '../src/Services/Identity/Identity.API' '../src/Web/WebMVC' '../src/Web/WebSPA' '../src/Web/WebStatus' ) for project in "${projectList[@]}" do echo -e "\e[33m工作在目錄(lu) $(pwd)/$project" echo -e "\e[33m\tRemoving old publish output" done
大(da)家(jia)在(zai)寫SH文(wen)件(jian)時(shi)要注(zhu)意,linux與(yu)windows的回(hui)車符(fu)不一樣,我(wo)們可以下載notepad++這(zhe)個工(gong)具(ju)來進行轉碼。