ASP.NET Core + Docker +Jenkins 實現持續集成


必讀

本文為 docker-compose 方式,但自從 Visual Studio 2017 15.8 版本更新以后,通過VS添加的 Docker 支持默認就只有 Dockerfile 了,所以最新版本Docker相關的操作方式請參見這篇文章:https://www.cnblogs.com/stulzq/p/9201830.html

准備

我們需要在容器內使用docker-compose,所以我們需要先進容器安裝docker-compose。

通過命令進入容器:

docker exec -it jenkins /bin/bash

docker-compsoe的安裝請查看官方文檔:https://docs.docker.com/compose/install/#install-compose

1.新建一個ASP.NET Core MVC應用程序:

需要勾選Docker支持

2.將其上傳到git:

3.建立Jenkins任務

(1)選擇“新建任務”,輸入任務名稱,選擇“自由風格項目”,然后點擊確定:

(2)選擇“源代碼管理”,填入我們的git地址

輸入H/2 * * * *設置兩分鍾拉取一次

(3)構建環境

勾上 Delete workspace before build start 是設置構建前刪除工作區

勾上 Abort the build if it's stuck 是設定構建的超時時間,如果構建使用的時間超過設定的時間,那么就認為這次的構建是失敗的。筆者這里超時設置的是10分鍾

(4)增加一個Execute Shell 腳本,並填寫以下腳本內容


#!/bin/bash
# 獲取短版本號

GITHASH=`git rev-parse --short HEAD`
echo ---------------Remove-Orphans------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p webapplication6 down --rmi local --remove-orphans
echo ------------------Config-----------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 config
echo ------------------Build------------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 up --build
echo ---------------Publishing...------------------
docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml"  -p webapplication6 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...------------------
docker rm webapplication6_ci-build_1

2018.4.24 加入鏡像和容器清理命令,所以上面的腳本和下圖不一樣,以上面的shell腳本為准

應用保存,回到項目界面上。點擊立即構建進行部署工作

我們可以查看控制台輸出:

待構建成功以后訪問url(你的ip:端口)試試效果。

不知道端口的可以通過命令docker ps查看

參考文章:

http://www.cnblogs.com/LongJiangXie/p/7517909.html
https://www.cnblogs.com/myzony/p/8434121.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM