sonar-scanner-cli-4.2 找不到 jre/bin/java
sonar-scanner-cli-4.2 does not find jre/bin/java
我正尝试在 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
env var 错了吗?我不明白为什么找不到 java。
在 alpine 上安装 openJDK 11+ 存在问题。 Alpine Linux 对其 libc
使用 musl-libc
,而 Linux 的大多数其他版本使用 glibc
,GNU 的 C 库。标准 Linux 软件是基于非 Alpine 风格构建的,例如 ubuntu 和 centos,因此通常与 glibc
相关联,因此无法使用 Alpine 成功执行,因为 libc
不是链接到 java 安装。唯一的解决方法是安装一个 glibc
兼容层,这并不简单,或者使用 alpine-openjdk11 容器(你可能无法使用它们,因为它们不是官方图像,因此在可维护性方面存在问题)
尝试使用 debian (ubuntu) 或 fedora (centos) 发行版,看看是否可以运行
我正尝试在 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
env var 错了吗?我不明白为什么找不到 java。
在 alpine 上安装 openJDK 11+ 存在问题。 Alpine Linux 对其 libc
使用 musl-libc
,而 Linux 的大多数其他版本使用 glibc
,GNU 的 C 库。标准 Linux 软件是基于非 Alpine 风格构建的,例如 ubuntu 和 centos,因此通常与 glibc
相关联,因此无法使用 Alpine 成功执行,因为 libc
不是链接到 java 安装。唯一的解决方法是安装一个 glibc
兼容层,这并不简单,或者使用 alpine-openjdk11 容器(你可能无法使用它们,因为它们不是官方图像,因此在可维护性方面存在问题)
尝试使用 debian (ubuntu) 或 fedora (centos) 发行版,看看是否可以运行