Jenkins自动化构建和部署多模块服务
2024-01-10 12:30:03
Jenkins构建多模块服务
服务器搭建Jenkins
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
Jenkins配置项目
插件等配置省略
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
文章来源:https://blog.csdn.net/qq420007900/article/details/135478705
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!