
前面又是廢話
我之前寫過:
Asp.Net Core 程序部署到Linux(centos)生產環境(一):普通部署
Asp.Net Core 程序部署到Linux(centos)生產環境(二):docker部署
大家可能會有疑問,分布式環境當中的部署還是跟我們在windows一樣,一台機一台機的去部署、更新程序嗎?
其實,擁抱Linux 我們還有更多選擇,比如:自動化部署;
運行環境
centos:7.2
cpu:1核 2G內存 1M帶寬
前面說過了,不過還是寫運行環境還是再寫一下
安裝docker
安裝其實很簡單,就不重復說了,請查看純潔大神這篇文章
安裝jenkins
安裝我單獨記錄了一篇,Asp.net Core 使用Jenkins + Dockor 實現持續集成、自動化部署(一):Jenkins安裝
安裝docker-conpose
因為jenkins需要用到本地的docker-compose環境,所以,安裝完以上步驟的jenkins后,使用
docker exec -it jenkins /bin/bash
進入容器內部安裝docker-compose,安裝步驟去
創建 asp.net core web 應用程序
此web應用程序就是你需要部署的項目,我這里創建一個演示項目 WebApplication2;

這里先取消掉https,勾上啟用docker支持;
接着把docker-compose.override.yml文件里面ports:下面的"ports:"的 - "80" 改成- "5006:80"
項目結構:

創建成功后,運行一下,能正常運行后,將項目上傳到git服務器(github,gitlab,gogs等),我上傳到了自己的gogs:

配置jenkins
1、創建一個jenkins項目
新建項目

構建一個自由風格的軟件項目

2、源代碼管理
這里可以指定git分支

3、構建觸發器
這里的是設置輪詢去git拉取代碼,如果代碼有更新就觸發構建操作,
H/2 * * * *是指每2分鍾輪詢拉取一次;

4、構建環境
Abort the build if it's stuck 是指如果構建過程中卡住了,就終止構建;這里是10是10分鍾,10分鍾超時構建失敗;

5、添加構建腳本Execute Shell

填寫構建腳本
GITHASH=`git rev-parse --short HEAD`
echo ========remove-orphans===========
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p webapplication1 down --rmi local --remove-orphans
echo ========config===========
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p webapplication1 config
echo ========publishing===========
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p webapplication1 up -d --build
echo ---------------Clear-Images...------------------
clearImagesList=$(docker images -f "dangling=true" -q)
if [ ! -n "$clearImagesList" ]; then
echo "No need to clean up images."
else
docker rmi $(docker images -f "dangling=true" -q)
echo "clear success."
fi
echo ---------------Clear-Containers...------------------

點擊保存回到jenkinstest2項目界面,點擊“立即構建”

構建控制台輸出

perfect!構建成功,現在打開 http://你的服務器ip:5006,可以看到,沒錯,這就是我們的網站:

如果網站有任何更改,提交代碼哦,jenkins會自動拉取代碼,並發布一個新的容器,我們就等着哈哈哈,刷新瀏覽器就行了;
