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

必讀

本文爲 docker-compose 方式,但自從 Visual Studio 2017 15.8 版本更新之後,經過VS添加的 Docker 支持默認就只有 Dockerfile 了,因此最新版本Docker相關的操做方式請參見這篇文章:http://www.javashuo.com/article/p-svmtdjrp-na.htmlhtml

準備

咱們須要在容器內使用docker-compose,因此咱們須要先進容器安裝docker-compose。git

經過命令進入容器:web

docker exec -it jenkins /bin/bash

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

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

須要勾選Docker支持bash

2.將其上傳到git:app

3.創建Jenkins任務webapp

(1)選擇「新建任務」,輸入任務名稱,選擇「自由風格項目」,而後點擊肯定:ide

(2)選擇「源代碼管理」,填入咱們的git地址ui

輸入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
http://www.javashuo.com/article/p-rfwwusxd-na.html

相關文章
相關標籤/搜索