一、下载Jenkins
1.添加jdk与tomcat
2.部署springboot项目
第三步 为你安装的Jenkins.war所在的目录(注意,你在自己电脑上下载后,要移动到服务器的文件里)
下载地址:mirrors.tuna.tsinghua.edu.cn/jenkins/war…
第四步 为项目名称,无要求
第五步 为服务器端口,可自己写,但要在宝塔页面与服务器开放相应端口
(例:8080端口,宝塔与服务器要开放8080端口)
第六步 为刚开始下载的jdk,下拉条选择即可
第七步 默认即可,但要更改红线处的位置的代码,service.port改为httpPort!!!
其他项默认即可
3.登录Jenkins
去启动的时候提示的存放默认密码的地方获取密码:
安装推荐的插件:
可以直接选择使用管理员账户继续,也可以创建一个账户:
若使用admin账户登录,记得要修改密码
二、安装插件
Publish Over SSH
SSH
SSH server
Docker
Maven Integration
三、创建凭证
1.入口
2.添加github凭证
1)生成公钥私钥(若以生成过,请忽略1.2步)
ssh-keygen -t ed25519 -C "your_email@example.com"
2)公钥放在github上
3)添加凭证
、
私钥放在jenkins中
3.添加远程服务器凭证
圈2圈3分别为你的服务器用户名,密码,其他项可不填
四、配置环境
1.系统配置
1)配置远程服务器
圈1为远程服务器ip
圈2为远程服务器端口
圈3、4步为凭证(上面配的远程服务器凭证)
2.全局工具配置
1)git
名字自定义,路径为你服务器里的git地址
2)maven
名字自定义,路径为你服务器里的maven地址
3)docker
名字自定义,路径为你服务器里的docker地址
4)重要!!!
五、构建任务
1.新建一个自由风格的任务
2.连接github
注意是ssh地址哦
凭证是上面添加的github的ssh凭证(密码方式已弃用)
分支为你要构建的github仓库的分支
注意,还要在系统管理->全局安全配置更改权限
3.构建步骤
1)打包并使用maven-compiler-plugin与dockerfile构建镜像
2)构建镜像并推送至阿里云镜像仓库
3)在指定的远程服务器拉取镜像并创建容器
4)maven的pom文件与dockerfile
六、远程触发器
上传至github时触发
1.在jenkins中自定义令牌
2.在github或其他平台使用上述令牌
这样,你提交代码至github时会自动触发构建,无需手动构建
其他项目构建后触发
以上图为例,只有在你的名为test1的jenkins工程成功构建后才触发
适用于某些微服务需依赖安装的基础环境时使用
七、docker安装jenkins
1、拉取最新版镜像
docker pull jenkins/jenkins:lts
因为配置了阿里云的镜像加速,导致拉取的 Jenkins 版本不是最新的,然后一直无法正常安装 Jenkins 插件
解决办法:修改daemon.json文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2、创建docker的文件影射卷
docker volume create jenkins_use
docker volume inspect jenkins_use
3、创建jenkins容器
docker run -d --name=jenkins -p 9090:8080 -p 50000:50000 -v jenkins_use:/var/jenkins_home -v /www/server/java:/etc/local/java -v /usr/local/maven/apache-maven-3.9.5:/usr/local/maven -v /etc/docker:/usr/bin/docker -v /run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
docker run -d
--name=jenkins\ # 给容器命名为jenkins
-p 9090:8080\ # 将容器中的端口8080,挂载到主机端口9090
-p 50000:50000\ # 将容器中的端口50000,挂载到主机端口50000
-v jenkins_use:/var/jenkins_home\ # 将容器中的目录/var/jenkins_home,挂载到主机目录jenkins_test
-v /www/server/java:/etc/local/java\ # 将容器中的目录/etc/local/java,挂载到主机目录/www/server/java
-v /usr/local/maven/apache-maven-3.9.5:/usr/local/maven\ # 将容器中的目录/usr/local/maven,挂载到主机目录/www/wwwroot/jenkins/maven/apache-maven-3.9.5
-v /etc/docker:/usr/bin/docker\ #将主机上的 /etc/docker 文件挂载到容器中的 /usr/bin/docker,这样容器内的 Jenkins 可以直接使用宿主机上的 Docker 命令。在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令;通过将宿主机的 Docker 共享给容器
-v /run/docker.sock:/var/run/docker.sock\ #将主机上的/run/docker.sock文件挂载到/var/run/docker.sock\,这样容器内的 Jenkins 可以与宿主机上的 Docker 引擎进行通信
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai\ #跳过 Jenkins 的初始设置向导
jenkins/jenkins:lts # 选择镜像
4、查看jenkins版本
docker inspect jenkins