Gradle构建在jenkins中失败:alpine容器:未满足链接错误:linux-amd64/libnative-platform.so:libstdc++;。因此,第6条:

Gradle构建在jenkins中失败:alpine容器:未满足链接错误:linux-amd64/libnative-platform.so:libstdc++;。因此,第6条:,gradle,jenkins,docker,alpine,Gradle,Jenkins,Docker,Alpine,最近,我开始在OracleJava8的Docker容器中使用Jenkins。使用Gradle构建项目时,我收到以下错误消息: UnsatisfiedLinkError: linux-amd64/libnative-platform.so: libstdc++.so.6: cannot open shared object file: No such file or directory 在詹金斯,我选择了“强迫GRADLE_用户_回家使用工作区”,但一点运气都没有。文件libnative-pla

最近,我开始在OracleJava8的Docker容器中使用Jenkins。使用Gradle构建项目时,我收到以下错误消息:

UnsatisfiedLinkError: linux-amd64/libnative-platform.so: libstdc++.so.6: cannot open shared object file: No such file or directory
在詹金斯,我选择了“强迫GRADLE_用户_回家使用工作区”,但一点运气都没有。文件libnative-platform.so位于预期目录中,但gradle无法工作。我试着在容器中安装Gradle,结果是一样的。我的最后一个设置是Gradle包装器

我到处找,但我的任务没有成功。如果有人能解释一下,我很感激

libstdc++.so.6:无法打开共享对象文件

libnative平台。所以JRE/JDK的
是链接到的,但Alpine图像是基于


简单的解决方案是使用基于glibc的docker映像,如Debian,如果您想继续使用Alpine,您可能会从中找到一些线索。

问题是Oracle JDK与GNU C库(glibc)链接,而GNU C库在这里不可用

不使用glibc作为Debian、Fedora或Gentoo等传统发行版。相反,它使用了一个轻量级、快速、简单且符合标准的C库(即glibc所不具备的一切)

解决方案非常简单,只需从Alpine存储库(包)安装OpenJDK。不必担心兼容性,Oracle JDK 8只是OpenJDK 8的品牌发行版,代码库几乎相同

如果出于任何原因坚持使用Oracle JDK,并且根本不关心安全性*,那么就不要使用Alpine Linux,而是使用一些传统的发行版

你可以在JRubyWiki上阅读我的文章


*由于美国的政策,Oracle JDK在默认情况下限制了加密。它是通过Ask.com广告软件发布的。因为它只作为一个BLOB分发,所以你不知道里面还有什么不好的东西…

你可以通过在Alpine中安装
libstdc++
包来实现这一点

apk add --no-cache libstdc++

我会检查链接,我知道在容器中安装Oracle Java有一些技巧,我也会看看。将发布结果,非常感谢@Erik。好消息,我不知道加密的事情。我不得不暂停这项工作几天,然后再继续,这会让你保持联系。安装无限加密强度非常简单,广告软件只适用于Windows/Mac安装,而且是可选的。@ErikDannenberg大多数人甚至都不知道这一点。无论如何,关键是它大大降低了Oracle的可信度,足以让您不想从他们那里安装不透明的BLOB。尤其是在没有理由的时候。