docker-compose jenkins安装

2021/1/16 jenkinsdocker-compose

构建环境: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
1
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


1
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
1

# 访问镜像

http://IP:8001
more /docker/jenkins/data/secrets/initialAdminPassword 查看密码
1
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  *
1
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
1

前端打包发送文件
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

1
2
3
4
5
6

# 构建后操作

将结果推送到gitlab push build status to gitlab

Last Updated: 2023/12/4 12:06:46