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

问题描述 投票:0回答:3

我正在尝试在 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
环境变量错误吗?我不明白为什么找不到java。

java sonarqube
3个回答
3
投票

更新 该答案现已过时,现已被 @Alexey Kolesaev 提供的答案取代:https://stackoverflow.com/a/76271486/11543023


在 alpine 上安装 openJDK 11+ 存在问题。 Alpine Linux 使用

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

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


2
投票

如果您确实需要高山,那么:

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-r0 只能工作。我尝试了新的,但不起作用


0
投票

请检查包 sonar-scanner-{version}/jre/bin/java 中的 java 文件 如果没有,您必须重新尝试下载新的 sonar-scanner-{version} 并重新检查它,我发现了这个问题,因为当我的 MACOS 打开 java 文件时,它没有权限,无法打开您 必须设置隐私和安全允许java

© www.soinside.com 2019 - 2024. All rights reserved.