docker jenkins升级以及失败处理

本文介绍了解决Jenkins升级后出现504错误的方法。通过替换war包并调整Docker启动参数,成功恢复Jenkins的正常运行。

一、概述

jenkins是由docker安装的,目前的jenkins版本为2.356。然后jenkins右上角提示版本升级

点击了升级,升级完成后,需要重启一下。

然后就芭比Q了,访问jenkins出现504错误。

查看docker日志,提示需要jdk升级到1.8。默认的jenkins的jdk版本为1.7,然后docker就开始一直无限重启。

二、解决故障

想升级jdk是不可能的,docker正在无限重启了,压根就进不去,进去就退出了。

需要注意的是,jenkins的war包,在docker里面的路径为:/usr/share/jenkins/jenkins.war

下载war包,地址为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/

然后找到版本2.356,下载地址为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.356/jenkins.war

由于jenkins的docker启动时,没有映射目录/usr/share/jenkins,因此,

先停止jenkins

docker rm -f jenkins

然后重新启动jenkins

docker run -d \
  --restart=always \
  --name=jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v /data/jenkins/data:/var/jenkins_home \
  jenkins/jenkins:lts

启动完成后,页面应该可以访问,但是里面的相关功能会受损。

先把jenkins docker里面的war包复制出来

docker cp jenkins:/usr/share/jenkins /data/jenkins/

给权限777

chmod 777 -R /data/jenkins/jenkins

然后将下载好的war替换到路径/data/jenkins/jenkins/jenkins.war

最后修改jenkins docker启动参数

docker run -d \
  --restart=always \
  --name=jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v /data/jenkins/data:/var/jenkins_home \
  -v /data/jenkins/jenkins:/data/jenkins/jenkins \
  jenkins/jenkins:lts

再次访问jenkins,登录一下,应该就正常了。

最后需要注意一点,jenkins升级前,一定要做备

不然升级失败,启动直接崩溃,是很搞人的事情。

本来之前jenkins直接升级,没法问题,升级了10多次了吧,相安无事。没想到啊,这一次,给整崩溃了。

不要幻想重新搭建新的,把配置给迁移过去,比较麻烦,重新搭建jenkins,很费时费力。

### 解决Docker容器Jenkins插件安装失败的方法 当在Docker环境中运行Jenkins并尝试安装插件时,可能会遇到各种问题。以下是几种常见的解决方案: #### 1. 网络连接问题排查 如果插件无法下载,可能是由于网络配置不当造成的。确保宿主机和Docker容器都能正常访问互联网,并且能够解析外部域名。 对于某些企业环境中的代理服务器设置,可以在启动Jenkins Docker容器时通过`JAVA_OPTS`传递HTTP/HTTPS代理参数[^2]: ```bash docker run \ -e JAVA_OPTS="-Dhttp.proxyHost=proxy.example.com -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080" \ jenkins/jenkins:lts ``` #### 2. 插件缓存清理 有时旧版本的插件残留可能导致新版本安装失败。可以考虑清除已有的插件缓存后再重试安装操作。这通常涉及到删除位于`$JENKINS_HOME/plugins`下的相应文件夹以及重启服务来触发重新同步过程。 #### 3. 更新Jenkins核心及其依赖库 保持Jenkins本身处于最新状态有助于减少因兼容性引发的问题。定期检查官方发布的更新日志,按照指引升级到稳定版次。同时也要注意所使用的其他组件(如操作系统、数据库驱动程序等)是否也需要同步调整以匹配新的API变更或安全补丁要求。 #### 4. 自定义初始化脚本 针对复杂场景下频繁变动的需求,建议采用预置好的自定义镜像策略。编写专门用于准备工作的Shell脚本来处理必要的前置任务,例如提前加载所需的全部扩展包至本地存储位置;或者借助于官方提供的命令行工具`jenkins-plugin-cli`来进行批量导入导出作业: ```bash #!/bin/bash # 下载所需插件清单 wget https://example.com/plugin-list.txt # 执行CLI指令完成离线模式下的快速部署 java -jar /usr/share/jenkins/ref/jenkins.war --plugin-download-directory=/var/cache/jenkins/war/WEB-INF/plugins plugin-list.txt ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值