环境:
- Centos7
- Docker
- SringBoot部署docker
- JAVA8
安装Docker可以参考:Docker安装
SringBoot部署docker可以参考:SringBoot部署docker
JAVA环境可以参考:JAVA环境安装
环境准备完毕,开始安装Jenkins:
-
Jenkins下载:https://jenkins.io/zh/download/
-
Jenkins安装:
rpm -ivh 包名
-
修改配置
vim /etc/sysconfig/jenkins
主要两项:
# 服务端口 JENKINS_PORT="8888" # 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
-
启动jenkins服务
service jenkins restart systemctl start jenkins
-
访问jenkins
http://服务器地址:端口
-
查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
登录之后选择,选择推荐配置
-
配置环境
配置JDK、git、Maven
点击保存 -
选择安装Maven Integration plugin插件
-
访问http://服务器地址:端口/restart/,选择重启Jenkins服务
当前安装完毕,下面我们来新建项目
-
选择新建项目
-
配置Source Code Management(源码管理)
我这里使用的是coding的git仓库。
Repository URL是git仓库的地址;Credentials 是访问令牌;Branch Specifier选择拉取源码时分支
注意:访问令牌需要自己创建。我这里使用的是coding的git仓库,所以在设置->项目令牌中选择新增令牌 -
配置Build Triggers
这里使用WebHook触发自动构建项目
此处只有master分支会触发构建。同时我们需要在coding上开启WebHook,URL处填入上图蓝色框中的WebHook地址。(注意:这个地址需要coding能访问到,因为WebHook是项目在更新时,会发送一条请求给指定的URL。当Jenkins接受到这个请求之后,触发构建。) -
配置构建前执行的shell脚本
代码:# !/bin/sh -ilex export PATH=$PATH:/usr/local/lib/node_modules/apidoc/bin:/opt/node-v6.9.4 # 获取容器 containers=$(docker ps -a -q -f name=test_master) # 输出容器 echo $containers if [ ! "$containers" ] ; then echo "不存在容器" else # 停止容器 docker stop $containers # 删除容器 docker rm $containers fi # 删除镜像 images=$(docker images -q "test/root/**") if [ ! "$images" ] ; then echo "不存在镜像" else docker rmi $images fi # 生成文档 apidoc -i src/ -o src/main/resources/html # 拷贝项目配置文件 cp /opt/Dockerfile ./ cp /opt/application.properties ./src/main/resources/
说明:
-
这个脚本是在源码拉取git之后,Maven执行构建之前,在项目工作空间的根目录下执行。
-
export PATH=$PATH:/usr/local/lib/node_modules/apidoc/bin:/opt/node-v6.9.4
是由于此shell读取不到部分node环境配置 -
构建前执行脚本的主要目的是:
- 停止旧的容器
- 删除旧的容器
- 删除旧的镜像
-
apidoc -i src/ -o src/main/resources/html
此处使用了apidoc生成HTML文档插件。不了解的可以参考我的另一篇文章:java生成API文档 -
由于配置文件未上传到git仓库之中,所以我们使用命令单独拷贝至工作空间下,当然我们需要将文件提前放置在服务器的目录下。一个是构建docker的Dockerfile,另一个是SpringBoot的配置文件application.properties
# 拷贝项目配置文件 cp /opt/Dockerfile ./ cp /opt/application.properties ./src/main/resources/
-
-
配置构建时的命令
Root POM:Maven项目的pom文件;Goals and options:构建时,Maven执行的命令。在执行构建命令时,Maven会自动编译源码,并且依据DockerFile文件自动打包成docker镜像,上传至Docker中。 -
配置构建后,执行的shell脚本
代码:# !/bin/sh -l #运行镜像 docker run -t -d -p 32123:32123 --name test_master $(docker images -q "root/**")
说明:
由于在构建时,已经将镜像导打包至docker中,所以在构建后我们只需将镜像运行起来。
-
保存配置,选择立即构建。