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

668104-20180322231802064-1785857801.png

须要勾选Docker支持bash

2.将其上传到git:markdown

668104-20180322232054413-808811849.png

3.创建Jenkins任务app

(1)选择“新建任务”,输入任务名称,选择“自由风格项目”,而后点击肯定:webapp

668104-20180322232242642-836201043.png

(2)选择“源代码管理”,填入咱们的git地址ide

668104-20180322232715290-1879880043.png

输入H/2 * * * *设置两分钟拉取一次

(3)构建环境

勾上 Delete workspace before build start 是设置构建前删除工做区

勾上 Abort the build if it's stuck 是设定构建的超时时间,若是构建使用的时间超过设定的时间,那么就认为此次的构建是失败的。笔者这里超时设置的是10分钟

668104-20180322232806954-231454633.png

(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脚本为准

668104-20180322235330132-302939413.png

应用保存,回到项目界面上。点击当即构建进行部署工做

668104-20180322235356010-14605310.png

咱们能够查看控制台输出:

668104-20180323101639767-6327744.png

待构建成功之后访问url(你的ip:端口)试试效果。

不知道端口的能够经过命令docker ps查看

668104-20180323102023151-906855697.png

参考文章:

http://www.cnblogs.com/LongJiangXie/p/7517909.html
http://www.javashuo.com/article/p-rfwwusxd-na.html