PS: docker 安装省略
下载docker-compose 文件,放到服务器的可执行目录中
下载地址 - 选择对应的类型
# 拷贝到指定目录
cp docker-compose /usr/local/bin/
# 赋予可执行权限
chmod 775 /usr/local/bin/docker-compose
配置docker-compose.yml文件 放到/home/jenkins目录下
version: '3.8'
services:
jenkins:
image: jenkins/jenkins
privileged: true
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
volumes:
- /home/jenkins/configuration:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime
启动jenkins服务
docker-compose -f /home/jenkins/docker-compose.yml up -d
插件等配置省略
PS: 重要插件 【git | Maven | Publish Over SSH | Extended Choice Parameter Plugin】
创建Maven项目
配置Maven项目
功能选项【以下配置简单省略】:
丢弃旧的构建配置
参数化构建 - PS参数构建中的名称可以在下面的【shell脚本/git分支】中通过$name 使用
源码管理,maven配置 等
发包进行部署
在Post step步骤中 - 这里我采用的是将所有包传递到服务器,然后在shell脚本中进行选择性替换包和部署
然后在Exec command中填入脚本命令
#!/bin/bash
# 定义要构建的模块和服务器信息
CURRENT_DIR="/home/packages/amount-dev/"
REMOTE_DIR="/home/amount-dev/"
cd $CURRENT_DIR
# 保存旧的IFS值
OLD_IFS=$IFS
# 设置IFS为逗号
IFS=','
# 将字符串分割成数组
read -ra packages <<< "$modules"
# 恢复IFS为旧值
IFS=$OLD_IFS
set +e
# 循环执行发包命令到指定服务器
for module in "${packages[@]}"; do
if [ "$module" == "amount-quartz" ]
then
cp ./amount-visual/$module/target/$module.jar $REMOTE_DIR$module
# 判断是否为"amount-monitor"
elif [ "$module" == "amount-monitor" ]
then
cp ./amount-visual/$module/target/$module.jar $REMOTE_DIR$module
else
cp ./$module/target/$module.jar $REMOTE_DIR$module
fi
# 执行docker删除容器,和镜像,并重新构建镜像
docker rm -f $module
docker rmi $module
docker build -t $module $REMOTE_DIR$module
sleep 10s
docker-compose -f "$REMOTE_DIR"docker-compose.yml up -d $module
done
set -e