基于Docker安装
docker拉取jenkins
docker pull jenkins/jenkins
创建本地数据卷
本地数据卷路径:/usr/local/jenkins/jenkins_home
修改目录权限,本地所有者为root
,docker中Jenkins
用户uid为1000
chown -R 1000:1000 /usr/local/jenkins/jenkins_home/
容器运行
docker run -d --name jenkins -p 9999:8080 -p 50000:50000 -v /usr/local/jenkins/jenkins_home/:/var/jenkins_home jenkins/jenkins
解释:
-d 标识是让 docker 容器在后台运行
—name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
-p 9999:8080 端口映射
-p 50000:50000 端口映射
-v /usr/local/jenkins/jenkins_home:/var/jenkins_home 绑定一个数据卷,/usr/local/jenkins/jenkins_home是刚才创建的本地数据卷
获取管理员登录密码
在映射的本地数据卷获取
cat /usr/local/jenkins/jenkins_home/secrets/initialAdminPassword
# a14704f51d8149e69ffeef23576d49f5
配置镜像加速
位置:/usr/local/jenkins/jenkins_home/hudson.model.UpdateCenter.xml
配置前:
镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
配置后重启容器
登录
推荐插件安装
创建管理员用户
实例配置
配置
全局配置
配置JDK
配置maven
配置Gitee
个人学习使用Gitee,这里先不加,先去插件管理下载Gitee
插件下载
docker重启Jenkins容器即可
Gitee生成私人令牌
f7dc7397a06ea021cf4138d1ec7caf35
配置
系统管理-系统配置-gitee配置
证书令牌处选择类型为Gitee API令牌,输入后确定,进行测试
新建任务
以部署简单SpringBoot项目为例,代码管理工具Gitee
项目代码上传Gitee
- 仓库管理
选中项目 -> 右键 -> git -> Manager Remote -> 添加地址
- 代码提交
选中项目,找到git,点击如下
提交是添加备注信息
最后推送致远程
Jenkins配置Gitee
新建构建任务
任务全局配置
此步中选择gitee的链接,前面已经配置
源码管理
- 点击git
- 仓库配置
- 地址输入:输入对应的仓库地址
- Credentials输入
点击添加;
类型选择Username with Password
输入用户名和密码:
点击添加
此处选中
- Name
输入origin
- Refspec
此处若选择只在push时触发,输入:
+refs/heads/:refs/remotes/origin/
若选择PR触发,输入:
+refs/pull//MERGE:refs/pull//MERGE
- Branches to build
对于一个仓库:输入orgin/分支
,这里分支采用master
对于PR:输入pull/{giteePullRequestIid}/MERGE
- Additional Behaviours
对于一个仓库,本人选择在推送的分支构建前合并发布的分支
1 选择Merge before build
2 输入以下数据
构建触发器
选择Gitee webhook触发构建
后续选择保持不动
点击生成WebHock密码
去gitee项目,点击管理 -> WebHocks -> 添加webHock
输入对应数据:如下,URL为构建触发器时生成的URL,密码为上图显示
注意:此时会出现问题,因为URL需要的是公网IP,此处仅为本地,所以需要内外穿透
构建
构建后操作
其他
docker run -d --name jenkins -p 9090:8080 -v /u01/hcbm/app/jenkins/jenkins_home/:/var/jenkins_home --privileged=true jenkinsci/blueocean
apt-get update && sudo apt-get install vim
安装Jenkins报错Issued certificate has expired. To connect to pkg.jenkins.io insecurely
wget --no-check-certificate -O /u01/hcbm/app/jenkins/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
mkdir /etc/yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum update