Jenkins作为CI/CD的常用工具,下面给出基本的安装使用说明。
docker、docker-compose安装
前面我已经介绍了如何安装 centos docker安装点击跳转过去即可
jenkins docker-compose.yml编写
这里的Jenkins就直接部署单机版本,如果后续内存不足,可以指定Jenkins docker的使用内存
version: '3.1'
services:
jenkins:
image: jenkins/jenkins:centos7
container_name: jenkins
networks:
huzhihui:
ipv4_address: 172.20.20.1
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
ports:
- "8080:8080"
environment:
- "TZ=Asia/Shanghai"
user: root
networks:
huzhihui:
external: true
- 官方推荐的版本
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts-jdk11
networks:
- default
container_name: jenkins-lts-jdk11
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
environment:
- "TZ=Asia/Shanghai"
ports:
- 8080:8080
- 50000:50000
user: root
networks:
default:
external:
name: huzhihui
上面我指定了网络,如果需要默认网络的去掉networks相关配置即可
挂在的共享目录,便于后续宿主机操作容器,和容器操作宿主机,按照自己的需要进行挂在
volumes
启动jenkins
docker-compose.yml然后按照提示输入密码等信息进入首页
上面的jenkins版本会存在中文乱码问题,可以替换为我重新打包的镜像
huzhihui/jenkins:1.0.0跳转
系统配置和全局工具配置
配置常用工具,后续在流程使用的时候即可使用
全局工具配置
JDK MAVEN配置 先把相关的JDK包和MAVEN包复制到共享的文件夹中,如我共享的文件夹
[root@localhost ext_soft]# pwd
/usr/local/docker/jenkins/jenkins_home/ext_soft
[root@localhost ext_soft]# ls
apache-maven-3.8.1 jdk1.8
JDK配置
git就直接在插件库中安装即可,安装后如下显示,不用自己配置
常用工具Publish over SSH 配置 先去工具库中安装,然后重启后配置,我这里用的用户名和密码,注意
Remote Directory配置后,后面的文件都会在这个文件夹下面,
Springboot项目 jar包发布初体验
这里给出比较简单的示例,后续按照个人需求进行扩展,插件库中很多插件都可以额外给我们提供帮助
新建项目
配置
Exec command示例
# 此处是关掉之前的老项目进程
PROJECT_NAME='home-1.0.0.jar'
PROCESS=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v PPID|awk '{ print $2}'`
if [ -n "$PROCESS" ]; then
echo "kill PID=$PROCESS"
for i in $PROCESS
do
echo "Kill the $PROJECT_NAME process [ $i ]"
kill -9 $i
done
fi
# 切换到目录下删除之前运行的文件
cd /root/home
rm -rf /root/run/home-1.0.0.jar
# 复制传输过来的文件到运行文件夹
mv /root/home/home-1.0.0.jar /root/run/home-1.0.0.jar
cd /root/run
# 可能部分机器配置的java命令不起作用,重新读取一下配置
source /etc/profile
nohup java -jar home-1.0.0.jar --server.port=9000 >> nohup.log 2>&1 &