这里使用的 .NetCore 2.1 框架开发的应用。测试环境频繁更新是在是痛苦不堪,研究了一下持续构建,最后选用Jenkins+Docker 来做。
服务器:CentOS7
一、安装docker
CentOS 7上安装docker百度一搜一大把,这里只罗列简单的步骤,摘自Centos7上安装docker:
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r

7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce

8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version

二、安装Jenkins
参考:https://www.imooc.com/article/43528 按步骤完成安装
1、使用以下命令安装jenkins
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm –import https://jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install jenkins
2、修改jenkins默认端口。默认是8080。当被占用时我们改成其他端口以便使用
$ vim /etc/sysconfig/jenkins
找到JENKINS_PORT="8080" 可以改成未被占用的端口号
3、配置权限
为了不因为权限出现各种问题,这里直接使用root
修改用户为root
$ vim /etc/sysconfig/jenkins
# 修改配置
$JENKINS_USER="root"
# 修改目录权限
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/cache/jenkins
$ chown -R root:root /var/log/jenkins
重启
$ service jenkins restart
$ ps -ef | grep jenkins
4、启动Jenkins
$ systemctl start jenkins
验证启动状态
$ systemctl status jenkins
正确如下:
![]()
5、初始化 jenkins
访问 http://xxxx:8080/ 或者 http://xxxx:你修改的端口/ 进行Jenkins的解锁
![]()
查看管理员密码: cat /var/lib/jenkins/secrets/initialAdminPassword
这里选择安装推荐的插件
![]()




至此,Jenkins的基本安装与配置就到此结束,下面开始部署示例。
三、持续构建配置
1、几个插件安装
因为直接使用Git来获取源码。所以不需要太多的插件。
系统管理 > 插件管理 > 可选插件 来安装
1、Blue Ocean
2、GitLab Plugin
![]()
Blue Ocean 控制台
![]()
2、构建一个自由风格的项目

3、配置,General中的内容不需要管。
源码管理选择Git。
Repository URL:Git项目代码根目录的路径
Credentials:有访问权限的Git账号

4、构建触发器,这里采用轮询构建,当有变更时拉取代码构建发布部署

5、项目构建生成。这里需要配合DockFile 使用。
首先要拉取一个NetCore的镜像。
$ docker pull microsoft/aspnetcore
DockFile 内容如下:
FROM docker.io/microsoft/dotnet WORKDIR /app COPY ./ . EXPOSE 6006 RUN cd ./testapi \ && dotnet restore \ && dotnet build \ && dotnet publish WORKDIR /app/testapi/bin/Debug/netcoreapp2.1/publish/ ENTRYPOINT ["dotnet","项目启动.dll"]
![]()
构建 -> 增加构建步骤 -> 执行Shell

执行代码如下:
#!/bin/sh cd /var/lib/jenkins/workspace/testapi docker container prune << EOF y EOF docker rm -f $(docker ps -a | grep "test" | awk '{print $1}') docker image prune << EOF y EOF docker build -t test . docker run -d -p 6006:6006 --name=test test
test名称随意取,但是要小写,testapi为项目名称
6006:6006 左边为映射的外部访问端口,右边为docker中启动程序的端口

然后保存即可。立即构建。点击Build History 可查看构建过程控制台输出。
![]()
安装了Blue Ocean插件的可以在首页点击 Open Blue Ocean 进入养眼点的控制台。








posted on
浙公网安备 33010602011771号