sonar-scanner-cli-4.2找不到jre/bin/java

mlnl4t2r  于 2023-05-21  发布在  Java
关注(0)|答案(2)|浏览(181)

我尝试在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没有找到。

mgdq6dx1

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)发行版,看看是否能让它正常工作

9nvpjoqh

9nvpjoqh2#

如果你需要的是alpine,那么:

export GLIBC_VERSION=2.34-r0
apk --no-cache add binutils curl
curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub
curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk
curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk
curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-i18n-${GLIBC_VERSION}.apk
apk add --no-cache glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk glibc-i18n-${GLIBC_VERSION}.apk # you must be needed to add || true for alpine newer than 3.15

在我的测试中,GLIBC_VERSION 2.34-r 0只能工作。我试了新的,但不工作

相关问题