1. 程式人生 > >Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(二):部署

Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(二):部署

Image result for Jenkins

前面又是廢話

我之前寫過:

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;

1539827129586

這裡先取消掉https,勾上啟用docker支援;
接著把docker-compose.override.yml檔案裡面ports:下面的"ports:"的 - "80"

改成- "5006:80"

專案結構:

1539827264942

建立成功後,執行一下,能正常執行後,將專案上傳到git伺服器(github,gitlab,gogs等),我上傳到了自己的gogs:
1539827442740

配置jenkins

1、建立一個jenkins專案

新建專案

1539827536373

構建一個自由風格的軟體專案

1539827799846

2、原始碼管理

這裡可以指定git分支

1539827875585

3、構建觸發器

這裡的是設定輪詢去git拉取程式碼,如果程式碼有更新就觸發構建操作,H/2 * * * * 是指每2分鐘輪詢拉取一次;

1539828189990

4、構建環境

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

1539828357709

5、新增構建指令碼Execute Shell

1539828569396

填寫構建指令碼

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...------------------

1539828704952

點選儲存回到jenkinstest2專案介面,點選“立即構建”

1539828834836

構建控制檯輸出

1539828964165

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

1539829039736

如果網站有任何更改,提交程式碼哦,jenkins會自動拉取程式碼,併發佈一個新的容器,我們就等著哈哈哈,重新整理瀏覽器就行了;

[參考]

https://www.cnblogs.com/LongJiangXie/p/7517909.html