我尝试在jenkins上的docker容器上运行sonnarqube
扫描器。我使用以下图片:
FROM node:16-alpine
我从这里安装java
:
RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
我从这里安装sonnarqube scanner
:
RUN wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873.zip
当运行扫描仪时,我得到以下错误:
22:33:55 sonar-scanner-4.2.0.1873-linux/bin/sonar-scanner: exec: line 64: /e2e/sonar-scanner-4.2.0.1873-linux/jre/bin/java: not found
查看java路径:
22:33:49 Step 39/44 : RUN which java
22:33:49 ---> Running in 47df6c73c0b7
22:33:50 /usr/bin/java
并将其附加到我的PATH
env变量(sonnarqube也可执行):
22:50:57 /usr/bin/java/bin:/sonar-scanner-4.2.0.1873/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
在docs中,他们说他们为Linux发行版提供了JRE。
但是如果我检查sonnarqube文件夹,我只看到:
22:50:39 drwxr-xr-x 5 root root 4096 Nov 25 21:50 .
22:50:39 drwxr-xr-x 1 root root 4096 Nov 25 21:50 ..
22:50:39 drwxr-xr-x 2 root root 4096 Nov 25 21:50 bin
22:50:39 drwxr-xr-x 2 root root 4096 Nov 25 21:50 conf
22:50:39 drwxr-xr-x 2 root root 4096 Nov 25 21:50 lib
没有sonar-scanner-4.2.0.1873/jre/java/bin
jre
是否应该在sonar-scanner-4.2.0.1873
文件夹中?我的PATH
环境变量是否错误?我不明白为什么Java没有找到。
2条答案
按热度按时间mgdq6dx11#
在alpine上安装openJDK 11+存在问题。Alpine Linux使用
musl-libc
作为其libc
,而大多数其他版本的Linux使用glibc
,GNU的C库。标准的Linux软件是建立在非Alpine风格上的,比如ubuntu和centos,因此通常会链接到glibc
,因此不能成功地与Alpine一起执行,因为libc
没有链接到java安装。唯一的解决方法是安装一个glibc
兼容层,这并不简单,或者使用alpine-openjdk 11容器(您可能无法使用,因为它们不是官方映像,因此在可维护性方面存在问题)尝试一个Debian(Ubuntu)或Fedora(Centos)发行版,看看是否能让它正常工作
9nvpjoqh2#
如果你需要的是alpine,那么:
在我的测试中,GLIBC_VERSION 2.34-r 0只能工作。我试了新的,但不工作