docker-compose jenkins安装
构建环境:docker、JDK1.8、maven3.3.9、搭建gitlab、git、jenkins/jenkins:lts
# 配置文件
chown -R 1000 /docker/jenkins/data
chown -R 1000:1000 /root/apache-maven-3.3.9 /root/jdk1.8.0_144
chown -R 1000:1000 /var/platform/repository
2
3
vim /docker/docker-compose.yml
version: "3.9"
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: always
ports:
- "8001:8080"
- "50000:50000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/jdk1.8.0_144:/root/jdk1.8.0_144
- /root/apache-maven-3.3.9:/root/apache-maven-3.3.9
- /root/platform/repository:/root/platform/repository
- /docker/jenkins/data:/var/jenkins_home
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
容器内的路径不要用/root,否者jenkins无法访问
注释(左边为你的服务器路径,右边为容器内路径):
- -v /var/run/docker.sock:/var/run/docker.sock 挂载docker的守护进程,容器内部也能调用docker命令,且与外部docker同步
- -v /root/jdk1.8.0_144:/root/jdk1.8.0_144 挂载为使用容器外部的jdk
- -v /root/apache-maven-3.3.9:/var/apache-maven-3.3.9 挂载为使用容器外部的maven
- -v /root/platform/repository:/var/platform/repository 挂载为使用容器外部的maven仓库
- -v /docker/jenkins/data:/var/jenkins_home 把jenkins的文件同步挂载到你的服务器
# 运行
运行:docker-compose up -d
# 访问镜像
http://IP:8001
more /docker/jenkins/data/secrets/initialAdminPassword 查看密码
2
# 安装插件
进入【首页】–【系统管理】–【插件管理】–【可选插件】
搜索以下需要安装的插件,点击安装即可。
安装Maven Integration 安装Publish Over SSH(如果不需要远程推送,不用安装) 如果使用Gitee 码云,安装插件Gitee(Git自带不用安装) 安装gitLab ,GitLab Authentication plugin 和 Gitlab Plugin 安装node和npm
# 配置全局变量
# maven配置
Maven 配置 -> 文件路径 :/var/apache-maven-3.3.9/conf/settings.xml MAVEN_HOME: /var/apache-maven-3.3.9
# 配置jdk
JAVA_HOME: /var/jdk1.8.0_144 自定义安装
# nodejs
NodeJS -> 填写别名:node12.18 选择版本自动安装保存 可以设置多个版本
# 配置gitlab Token
系统管理 -> 系统配置
配置对应的gitlab地址, 以及证书, 这里的证书为 可选择gitLab的Access Token. 可在gitlab的 userSettings → Access Tokens 找到. 输入名称, 勾选权限, 生成对应token
返回jenkins 点击图中添加按钮, 类型选择 GitLab API token. 输入对应的token, ID 可不填, 描述建议填一下
# 配置ssh
系统管理 -> 系统配置
注意这里的Remote Directory,后台上传文件的时候只能填写相对地址,也就是/docker下的相对地址。
# 构建maven项目同时发布前端
新建任务 -> 构建一个maven项目
# 配置源码管理
填写git仓库地址,选好分支,先配置Credentials,使用用户名和密码
# 构建触发器
勾选一下两个触发器:
Build whenever a SNAPSHOT dependency is built
Build when a change is pushed to GitLab. GitLab webhook URL: http://120.77.204.210:8001/project/jenkins-project
高级里面有Secret token,生成token
在gitlab项目中“设置”-> "webhooks" 要填写上面的webhook URL和该token,不启用ssl验证
测试push event 成功则返回状态200;
如果返回422,大概率是url没有填写对或者Secret token填写错误
# 构建环境
选择:Provide Node & npm bin/ folder to PATH 指定node环境
# Pre Steps
执行前端编译打包
cd ruoyi-ui && npm install --registry=https://registry.npmmirror.com && npm run build:prod
cd dist && tar -zcvf dist.tar.gz *
2
# Build
设置根pom.xml和maven执行命令
# Post Steps
后端打包发送文件
选择ssh服务
Source files:yudao-server/target/yudao-server.jar
Remove profix:yudao-server/target
Remote directory: ruoyi/ruoyi-yudao-server/jar/
Source files、 Remove profix 、 Remote directory 需要设置相对路径
Exec command:
cd /docker/ruoyi/ && docker-compose restart ruoyi-yudao-server
前端打包发送文件
Source files:yudao-ui-admin/dist/dist.tar.gz
Remove profix:yudao-ui-admin/dist
Remote directory: ruoyi/nginx/web/yudao-ui-admin/
rm -rf /docker/ruoyi/nginx/web/yudao-ui-admin/dist/*
cd /docker/ruoyi/nginx/web/yudao-ui-admin
tar -zxvf dist.tar.gz -C dist
cd /docker/ruoyi/
docker-compose restart ruoyi-nginx
2
3
4
5
6
# 构建后操作
将结果推送到gitlab push build status to gitlab