参考: https://segon.cn/install-jenkins-using-docker.html
https://www.jenkins.io/zh/download/
https://blog.csdn.net/achi010/article/details/93708768
https://blog.csdn.net/z19799100/category_10566107.html
1 .docker 安装jenkins
① 创建挂载目录 mkdir jenkins_home
② 为挂载目录修改权限 chown -R 1000:1000 jenkins_home
③ docker-compose.yml 运行
version: "3.7"
services:
jenkins:
image: jenkins/jenkins:latest
ports:
- 8099:8080
volumes:
- /usr/jenkins/jenkins_home:/var/jenkins_home
# 容器名称
container_name: jenkins
④ 登录 http://localhost:8099 登录 按照提示 输入密码
⑤ 安装插件
⑥ 设置账户/密码 ( 我的是 admin/1234 —密码太多记不住)
2 配置
配置主要有 git(拉去代码), maven(构建), ssh(部署)
2.1 配置git
进入容器内部 生成密钥
ssh-keygen -t rsa -C “[email protected]” -f ~/.ssh/jenkins (不用设置密码 直接两个回车就行)
生成的密钥在 /var/jenkins_home/.ssh/jenkins.pub 下 及挂载目录下 (看不见话 直接cd .ssh 进)
jenkins(私钥) jenkins.pub(公钥)
公钥放到git上 私钥先留着
设置全局配置(系统管理–> 系统配置–>全局工具配置) 配置如下
创建任务
① 新建任务
输入名称–> 构建一个自由风格的软件项目 --> 确定
进入源码管理选择Git
在 Repository URL 输入git地址(此时会报错 无法连接仓库 如下图)
在 Credentials 右下方有个添加
Enter directly 中是ssh中的密钥 公钥已经配置在git仓库了
添加之后再前面的 -无- 选择刚才添加凭据
Branches to build中填写对应的分支名称
保存 立即构建即可
如果报错 可能原因:
1 协议错误 [email protected]:XXXXX 换成 https://gitee.com/XXXXX
2 把项目删掉 然后将 jenkins_home\workspace中对应的项目删掉 重新建一个
2.2 配置maven
安装插件
系统管理 --> 插件管理 --> 可选插件 输入 Maven Integration (不是pip Maven Integration)
前面的括号打勾 然后点击 install without restart
① 在挂载目录下 下载maven wget https://mirrors.cnnic.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz --no-check-certificate
解压: tar -xzf apache-maven-3.6.3-bin.tar.gz
② 将自己的maven中的settings.xml文件配置或者替换(本地仓库地址请注意更换)
③ 系统管理 – > 全局工具配置 指定settings.xml文件路径
④ 指定maven 安装位置
新建任务
输入名称 —> 构建一个maven项目 确定
源码管理同 配置git一样
下面直接拉到
Pre Steps
保存 立即构建
在工作空间会看到打包好的jar包
3 配置ssh 参考: https://blog.csdn.net/muyeju/article/details/103454242
安装插件 Publish Over SSH
系统管理 --> 插件管理 --> 可选插件 输入 Publish Over SSH
前面的括号打勾 然后点击 install without restart
配置
系统管理 —> 系统配置 (直接拉到底)
SSH Servers 点击新增
然后点击高级(新增之后出现的高级选项)
最后点击 Test Configuration
使用密钥配置ssh
与上同 密钥放在这
部署项目
接着maven 项目的 demo
打开配置项 : 拉到构建后操作
设置完成后 保存 然后选择立即构建即可
在目标主机上执行的命令sh ./bootstrap.sh start
文件 bootstrap.sh 见 https://blog.csdn.net/xy3233/article/details/116021426