这里使用的 .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 2018-09-13 15:28  Mr.SVZhou  阅读(276)  评论(0)    收藏  举报