一、安装Docker

1、在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上

查看版本以及系统位数

lsb_release -a

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用

2、用yum安装Docker

2.1 查看是否已安装docker列表

 yum list installed | grep docker

2.2 安装Docker

yum -y install docker

Docker在自动化中应用 docker运行自动化_linux_02

 2.3 启动Docker

systemctl start docker

2.4 查看Docker服务状态

Docker在自动化中应用 docker运行自动化_jenkins_03

 二、Docker中安装Jenkins

1、使用Docker安装Jenkins

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_04

2、访问Jenkins

http://ip:8080

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_05

3、切换到Docker环境中的Jenkins容器中

 查询Jenkins容器ID

docker ps

Docker在自动化中应用 docker运行自动化_linux_06

 进入Jenkins容器(容器ID为上图标红)

docker exec -it a080ade07ba2 /bin/bash

 

Docker在自动化中应用 docker运行自动化_linux_07

 4、查询Jenkins密码

 cat /var/jenkins_home/secrets/initialAdminPassword

Docker在自动化中应用 docker运行自动化_linux_08

 5、选择【安装推荐的插件】

Docker在自动化中应用 docker运行自动化_docker_09

Docker在自动化中应用 docker运行自动化_jenkins_10

6、创建新用户 

 

Docker在自动化中应用 docker运行自动化_Jenkins_11

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_12

 7、Jenkins全局工具配置

Docker在自动化中应用 docker运行自动化_linux_13

配置jdk,默认Docker容器安装的版本较高,所以选择jdk1.8

Docker在自动化中应用 docker运行自动化_Jenkins_14

 配置Maven

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_15

8、安装Jenkins对应的Maven插件

Docker在自动化中应用 docker运行自动化_docker_16

 插件名称 Maven Integration

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_17

 安装并重启 Jenkins

Docker在自动化中应用 docker运行自动化_linux_18

三、Jenkins实现Springboot项目自动部署

1、创建一个任务  JenkinsSpringBoot

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_19

 2、配置git账号(添加git账号密码)

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_20

 3、配置项目打包  

clean install

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_21

 4、点击立即构建

Docker在自动化中应用 docker运行自动化_docker_22

 第一次构建需要下载依赖,耗费时间较长

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_23

4、配置shell脚本

上一步【立即构建】只是把项目打包了,并不会自动运行,所以需要配置运行脚本

Docker在自动化中应用 docker运行自动化_jenkins_24

 

Docker在自动化中应用 docker运行自动化_Jenkins_25

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_26

shell脚本

#!/bin/bash
#服务名称
SERVER_NAME=JenkinsSpringBoot
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/JenkinsSpringBoot/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/JenkinsSpringBoot/target
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
   kill -9 $id  
   echo "killed $id"  
done
echo "结束进程完成"
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

5、点击【立即构建】

点击圈中的地方可以看控制台日志

Docker在自动化中应用 docker运行自动化_Jenkins_27

Docker在自动化中应用 docker运行自动化_linux_28

Docker在自动化中应用 docker运行自动化_linux_29

6、访问http://ip:9090/index (git项目访问路径)

发现并不能访问

因为docker容器中的端口号没有映射,在本地浏览器是无法访问容器内项目

四、容器中映射项目端口号

1、重启docker容器

退出Jenkins容器:exit

重启docker容器:systemctl restart  docker

Docker在自动化中应用 docker运行自动化_jenkins_30

  2. 清空未运行的容器

docker rm $(sudo docker ps -a -q)

Docker在自动化中应用 docker运行自动化_docker_31

3、配置docker容器中的git项目端口号映射,并重启

docker run -p 8080:8080 -p 9090:9090 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

其中 -p 9090:9090 为git项目的端口号

Docker在自动化中应用 docker运行自动化_jenkins_32

4、登录Jenkins并构建JenkinsSpringboot任务

4、访问http://ip:9090/index 

Docker在自动化中应用 docker运行自动化_docker_33

五、Jenkins时间与服务器时间同步

在构建历史中可以发现时间与服务器不统一

设置Jenkins时间

Docker在自动化中应用 docker运行自动化_jenkins_34

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

Docker在自动化中应用 docker运行自动化_Docker在自动化中应用_35

 

以上就是Jenkis自动化部署项目