Jenkins部署Springboot项目注意事项
Jenkins部署Springboot项目注意事项
-
前情摘要
-
在本地部署开发环境
-
-
- 本地GitLab钩子无法连接到本地Jenkins服务器
-
- 钩子对接Jenkins时遇到HTTP 403错误
-
- Jenkins插件下载过程中遇到证书验证失败的问题
-
- Jenkins尝试通过Shell启动Spring Boot应用时出现故障
-
- Jenkins等待状态更新超时
-
-
远程生产环境部署
-
-
- 通过SSH实现Spring Boot服务的远程启动,在执行nohup命令后无法正常退出。
- 现象描述:长时间未收到服务响应。
- 分析原因:可能与配置文件设置不当或网络通信异常有关。
-
-
-
push后动态部署分支
-
- 问题: 如果一个主分支已经被提交到远程仓库中,则所有非主分支也会自动触发,请问如何才能确保仅当指定的主分支被提交到远程仓库时才会触发?
- 解决方法:
-
前情摘要
总结一下最近应用Jenkins为公司搭建自动化部署过程中遇到的一些痛点及应对措施,并省略了一些细节以便专注核心问题。以后有机会再详细补充这些内容。期待您的宝贵意见!
本地开发环境部署
1.本地gitlab钩子无法访问本地jenkins
解决方法:gitlab ->设置 ->Outbound requests
2.gitlab钩子访问jenkins出现403问题
解决方法:
①Jenkins全局设置 >> 跨站请求保护机制 >> 普通用户具备访问权限
②下载插件 Build Authorization Token Root插件 ( build-token-root:1.7 )
3. jenkins下载插件出现证书问题
解决方法:
①jenkins 插件管理 >> 高级 >> 升级站点 >> URL 修改为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
②进入jenkins站点更新目录修改默认json配置
cd /var/lib/jenkins/updates/
③全局替换default.json里面的下载插件地址
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
④获取证书路径:
find / -type f -name cacerts
/etc/pki/ca-trust/extracted/java/cacerts
⑤修改jenkins配置文件
vim /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djavax.net.ssl.trustStore=/etc/pki/ca-trust/extracted/java/cacerts"
⑥重启jenkins
systemctl restart jenkins
4.jenkins执行shell启动springboot项目失败
解决方法:jenkins >> 项目 >> 配置 >> 构建shell >> 添加 BUILD_ID=DONTKILLME

5.jenkins 等待时间过长
解决方法:jenkins >> 项目 >> 配置 >> Build

远程生产环境部署
1.ssh 远程启动springboot执行nohup命令不退出,一直卡着
解决方法:执行脚本后追加 >/dev/null 2>&1 &
ssh root@$ip /usr/local/project/start.sh >/dev/null 2>&1 &
push后动态部署分支
在开发过程中,默认情况下如果一个代码分支被推入(pushed),系统会自动触发与之相关的所有未关联的分支(branch)进行同步或检查。那么,在这种情况下,如果想要仅使那些直接与该推入操作相关联的分支也发生响应而不影响其他无关的分支该怎么办呢?
解决方法:
① 安装工具包 Generic Webhook Trigger
② 在Jenkins中选择项目,在配置选项中找到构建触发器设置并勾选
③ 设置自定义参数
④ 请配置一个令牌并将对应的URL参数设置到Gitlab Webhook工具中
⑤ 请设置一个正则表达式作为筛选规则用于过滤日志内容



