docker compose 运行 jenkins
version: "3"
services:
app:
image: jenkins/jenkins:latest-jdk17
container_name: jenkins
restart: always
environment:
TZ: Asia/Shanghai
volumes:
- ./jenkins_home:/var/jenkins_home
- ./apache-maven-3.9.10:/usr/local/maven/apache-maven-3.9.10
- ./maven-rep:/opt/maven-rep
- ./.ssh:/var/jenkins_home/.ssh
extra_hosts:
- "yhcloud.gitlab.com:192.168.2.3"
ports:
- "8089:8080"
- "50000:50000"
正常启动docker 容器,在本地jenkins_home/secrets/initialAdminPassword 查看默认密码登录,正常安装插件
安装 Spring boot 所需的插件
在可选插件中,搜索Maven Integration, Publish Over SSH 三个插件:
Maven Integration 是用于创建一个maven 任务的插件
Publish Over SSH 主要是负责在完成构建后将资源提交至服务器,并执行相应的服务运行的脚本执行等。
创建一个 Maven 任务
配置凭证连接代码仓库
我在另一篇文章有介绍过,jenkins 怎么连接gitlab 可参考 这是一个链接 Jenkins SSH 连接GITLAB。
配置maven
打开系统管理,找到全局工具配置
找到maven 项目,将路径修改成自己的版本
在系统配置中配置服务器信息
在系统管理中,打开系统配置找到SSH SERVER, 添加自己服务器的信息,并点击test connect 测试连接
测试成功后点保存即可
任务构建参数配置
找到源码管理,输入自己仓库地址,在凭证处选择之前配置的凭证,如果连接成功将不会有任何提示,如果显示连接失败,请参考之前的 连接仓库的配置
为了避免权限问题和环境不正确的原因,我在构建前添加了一些指令
点击添加pre steps , 选择执行shell 指令
# 防止mvn 找不到
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.10
export PATH=$PATH:$MAVEN_HOME/bin
mvn --version
# 修复权限, maven摘取依赖需要有写入这些目录的权限
chown -R jenkins:jenkins /var/jenkins_home/.m2
chmod 775 /var/jenkins_home/.m2