Jenkins容器安装ruby-runtime插件失败报错解决

简介: Jenkins容器安装ruby-runtime插件失败报错解决

报错信息:

java.lang.RuntimeException: unsupported Java version: 11
    at org.jruby.RubyInstanceConfig.initGlobalJavaVersion(RubyInstanceConfig.java:1674)
    at org.jruby.RubyInstanceConfig.<clinit>(RubyInstanceConfig.java:1387)
Caused: java.lang.ExceptionInInitializerError
    at org.jruby.embed.internal.AbstractLocalContextProvider.<init>(AbstractLocalContextProvider.java:42)
    at org.jruby.embed.internal.SingleThreadLocalContextProvider.<init>(SingleThreadLocalContextProvider.java:43)
    at org.jruby.embed.ScriptingContainer.getProviderInstance(ScriptingContainer.java:242)
    at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:226)
    at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:192)
    at org.kohsuke.stapler.jelly.jruby.JRubyFacet.<init>(JRubyFacet.java:65)
    at ruby.RubyRuntimePlugin.registerJRubyFacet(RubyRuntimePlugin.java:39)
    at ruby.RubyRuntimePlugin.start(RubyRuntimePlugin.java:30)
    at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:408)
    at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:397)
Caused: java.io.IOException: Failed to initialize
    at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:400)
    at hudson.PluginManager.dynamicLoad(PluginManager.java:922)
Caused: java.io.IOException: Failed to install ruby-runtime plugin
    at hudson.PluginManager.dynamicLoad(PluginManager.java:934)
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2183)
Caused: java.io.IOException: Failed to dynamically deploy this plugin
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2187)
    at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1850)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
    at java.base/java.lang.Thread.run(Thread.java:829)

1.png

解决:


 从上面的报错信息分析可能是由于Jenkins容器中的Java 11版本过高。我们单独下载一个低版本的jdk,然后将低版本的jdk拷贝到Jenkins容器中替换掉之前的Java 11版本。

[root@k8s-master ~]# wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u262-b10/openlogic-openjdk-8u262-b10-linux-x64.tar.gz    //下载jdk8
[root@k8s-master ~]# ll openlogic-openjdk-8u262-b10-linux-x64.tar.gz
-rw-r--r-- 1 root root 104479130 7月  26 2020 openlogic-openjdk-8u262-b10-linux-x64.tar.gz
[root@k8s-master ~]# docker ps | grep jenkins
2324d2daa74d        jenkins/jenkins:lts                                 "/sbin/tini -- /usr/…"   6 weeks ago         Up 2 hours             0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins
[root@k8s-master ~]# docker cp openlogic-openjdk-8u262-b10-linux-x64.tar.gz jenkins:/usr/local/         //将下载的jdk拷贝到jenkins容器中
[root@k8s-master ~]# docker exec -it -u root jenkins /bin/bash     //进入jenkins容器
root@2324d2daa74d:/# java -version       //可以看到现在jenkins容器的jdk版本是11.0.12
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
root@2324d2daa74d:/# cd /usr/local/
root@2324d2daa74d:/usr/local# tar -xvf openlogic-openjdk-8u262-b10-linux-x64.tar.gz      //解压我们刚才拷贝到jenkins容器中的jdk低版本
root@2324d2daa74d:/usr/local# ls
bin  games    lib  openlogic-openjdk-8u262-b10-linux-64          sbin   src
etc  include  man  openlogic-openjdk-8u262-b10-linux-x64.tar.gz  share
root@2324d2daa74d:/usr/local# mv openlogic-openjdk-8u262-b10-linux-64/ jdk8        //将解压后的jdk低版本目录名称修改为jdk8
root@2324d2daa74d:/usr/local# ls
bin  etc  games  include  jdk8  lib  man  openlogic-openjdk-8u262-b10-linux-x64.tar.gz  sbin  share  src
root@2324d2daa74d:/usr/local# whereis java     //查看jenkins容器中的java安装位置
java: /opt/java/openjdk/bin/java
root@2324d2daa74d:/usr/local# mv /opt/java/openjdk/bin/java /opt/java/openjdk/bin/java11.bak     //备份jenkins容器中的原java11版本
root@2324d2daa74d:/usr/local# ln -s /usr/local/jdk8/bin/java /opt/java/openjdk/bin/java        //将/usr/local/jdk8/bin/中低版本的java作为/opt/java/openjdk/bin/中的java软连接
root@2324d2daa74d:/usr/local# java -version    //查看“替换”后的java版本
openjdk version "1.8.0-262"
OpenJDK Runtime Environment (build 1.8.0-262-b10)
OpenJDK 64-Bit Server VM (build 25.71-b10, mixed mode)

 再次安装ruby-runtime插件,若还是失败,可以在Jenkins首页重启一下再安装即可。(重启Jenkins后ruby-runtime插件默认就会加载成功)

2.png3.png 插件安装完成后我们再将Jenkins容器中的Java版本修改回来。(根据情况,也可以不改回来)

root@2324d2daa74d:~# rm -rf /opt/java/openjdk/bin/java    #删除了之前替换的java8
root@2324d2daa74d:~# mv /opt/java/openjdk/bin/java11.bak /opt/java/openjdk/bin/java    #换回了java11
root@2324d2daa74d:~# java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
636 5
|
6月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
11月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
857 30
|
11月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
444 16
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
14282 38
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
1456 15
|
JavaScript 前端开发 Docker
前端的全栈之路Meteor篇(一):开发环境的搭建 -全局安装或使用容器镜像
本文介绍了如何搭建 Meteor 开发环境,包括全局安装 Meteor 工具和使用 Docker 镜像两种方法,以及创建和运行一个简单的 Meteor 项目的基本步骤。 Meteor 是一个全栈 JavaScript 框架,适用于构建实时 Web 应用程序。文章还提供了遇到问题时的解决建议和调试技巧。
884 3
|
前端开发 JavaScript Docker
拿下奇怪的前端报错(五):SyntaxError: Unexpected token ‘??=‘或‘xxx‘ - 基于容器搭建开发环境或许是更好的选择
在前端开发中,同时维护多个项目时可能会遇到不同Node.js版本的问题。低版本Node.js可能导致依赖无法安装或启动失败,而高版本Node.js则可能引起第三方库的兼容性问题。推荐使用Docker搭建独立的开发环境,以避免版本不一致带来的困扰。
3749 2
|
安全 Docker 容器
Docker中运行容器时Operation not permitted报错问题解决
【10月更文挑战第2天】Docker中运行容器时Operation not permitted报错问题解决
6262 4
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
859 1

推荐镜像

更多