【问题标题】:sonar-scanner-cli-4.2 does not find jre/bin/javasonar-scanner-cli-4.2 找不到 jre/bin/java
【发布时间】:2022-01-04 02:48:45
【问题描述】:

我正在尝试在 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 环境变量(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。

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    在 alpine 上安装 openJDK 11+ 存在问题。 Alpine Linux 使用musl-libc 作为其libc,而大多数其他版本的Linux 使用glibc,GNU 的C 库。标准 Linux 软件建立在非 Alpine 风格上,如 ubuntu 和 centos,因此通常与 glibc 链接,因此无法使用 Alpine 成功执行,因为 libc 未链接到 java 安装。唯一的解决方法是安装glibc 兼容层,这并不简单或使用 alpine-openjdk11 容器(您可能无法使用,因为它们不是官方镜像,因此存在可维护性问题)

    尝试使用 debian (ubuntu) 或 fedora (centos) 发行版,看看是否可以正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2020-06-30
      • 2019-01-14
      相关资源
      最近更新 更多