Jenkins与Docker的自动化CI/CD流水线实战( 二 )


{
"registry-mirrors": ["http://bc437cce.m.daocloud.io"],
"insecure-registries": ["192.168.0.15:5000"]
}
 
# systemctl restart docker
6、构建Tomcat基础镜像JAVA程序必须有JDK环境才可以运行,为了减少镜像大小及提高性能,这里直接把JDK放到宿主机上,容器以挂载形式使用 。
在192.168.0.13/192.168.0.14安装JDK:
# tar -xzf jdk-8u45-linux-x64.tar.gz
# mv jdk1.8.0_45/ /usr/local/jdk1.8
# vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
# source /etc/profile
# java -version
Tomcat基础镜像Dockerfile:
# cat Dockerfile
FROM centos:7
MAINTAINER andy
ENV VERSION=8.5.31
ENV JAVA_HOME /usr/local/jdk1.8
COPY apache-tomcat-8.5.31.tar.gz /opt
#RUN yum install wget -y
#RUN wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz &&
RUN cd /opt &&
tar zxf apache-tomcat-${VERSION}.tar.gz &&
mv apache-tomcat-${VERSION} /usr/local/tomcat &&
rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* &&
mkdir /usr/local/tomcat/webapps/ROOT
EXPOSE 8080
CMD ["catalina.sh", "run"]
# docker build -t 192.168.0.15:5000/tomcat-85 -f Dockerfile .
# docker push 192.168.0.15:5000/tomcat-85
7、Jenkins配置全局工具配置主页面 -> 系统管理 -> 全局工具配置
指定JDK、Maven路径,Git保持默认:
安装git:
# yum install git -y
安装maven:
下载地址:
http://maven.apache.org/download.cgi
# tar -xzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
# cd /usr/local/
# mv apache-maven-3.5.4/ maven
配置环境变量:
# cat /etc/profile
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
# source /etc/profile
# mvn -v
 
8、Jenkins安装必要插件1. Jenkins安装必要插件
主页面 -> 系统管理 ->管理插件:
 
安装SSH与Git Parameter插件 。
插件说明:
•SSH:用于SSH远程Docker主机执行Shell命令
•Git Parameter:动态获取Git仓库Branch、Tag
2. 配置SSH插件
第一步:先创建一个用于连接Docker主机的凭据 。
主页面 -> 凭据 -> 系统 -> 右击全局凭据 -> 添加凭据:

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
输入连接Docker主机的用户名和密码:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
第二步:添加SSH远程主机
主页面 -> 系统管理 -> 系统设置 -> SSH remote hosts:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
9、上传JAVA项目代码到Git仓库从GitHub拉取开源Java博客系统solo:
# git clone -b v2.9.0 https://github.com/b3log/solo.git
# cd solo
修改Git地址:
# vim .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@192.168.0.15:/home/git/solo.git
fetch = +refs/heads/*:refs/remotes/origin/*
提交代码到Git仓库
# git add .
# git commit -m 'solo'
创建标签
# git tag 1.0.0
推送到Git服务器
# git push origin 1.0.0
10、Jenkins创建项目并发布测试主页面 -> 新建任务 -> 输入任务名称,构建一个Maven项目:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
注意:如果没有显示“构建一个Maven项目”选项,需要在管理插件里安装“Maven Integration plugin”插件 。
配置Git参数化构建:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
动态获取Git仓库tag,与用户交互选择Tag发布:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
指定项目Git仓库地址:
jenkins服务器配置:
# ssh-keygen
# ssh-copy-id git@192.168.0.15
Jenkins与Docker的自动化CI/CD流水线实战

文章插图


推荐阅读