Docker(Apple Silicon/M1 预览版)sonarqube“清单列表条目中没有 linux/arm64/v8 的匹配清单”

Udh*_*aya 15 terminal docker apple-m1

这是我的 YAML 文件。

\n

文件名 - docker-compose.mysonar.yml

\n
version: '2'\nservices:\n    my-sonar:\n        image: sonarqube:7.1\n        ports:\n            - 9001:9000\n
Run Code Online (Sandbox Code Playgroud)\n

当我运行 \n docker-compose -f docker-compose.mysonar.yml up \nit 时,抛出错误 - \xe2\x80\x9cno 清单列表条目中的 linux/arm64/v8 匹配清单 \xe2\x80\x9d

\n

我该如何解决?

\n

edi*_*nit 32

苹果M1芯片是基于ARM架构的。当我们使用--platform linux/x86_64选项运行 docker 时,它在 qemu 仿真上运行,这不会给我们带来最佳性能。要获取更多信息,请参阅docker apple-silicon docs

要获得 M1 芯片的本机性能,您可以执行以下操作。

  1. 从 Applie slicon 上的 Sonarqube Dockerfile构建您自己的 sonarqube 映像。
git clone https://github.com/SonarSource/docker-sonarqube
cd docker-sonarqube/9/community

#build
docker build -t sonarqube-arm .

#run
docker run -d -p 9000:9000 sonarqube-arm
Run Code Online (Sandbox Code Playgroud)

或者

  1. 您可以使用我最近在基于 AWS ARM 的服务器上构建的基于 ARM 的 sonarqube docker 映像。
docker run -d -p 9000:9000 koolwithk/sonarqube-arm:9.2.4-community
Run Code Online (Sandbox Code Playgroud)


Ash*_*ari 30

--平台linux/x86_64

对于无法正常工作的命令,请使用上面的此标志。

例如。

docker run --platform linux/x86_64 sonarqube 
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)


小智 5

只需在 docker-compose.yml 文件中添加此平台即可,如下所示

platform: linux/amd64
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '2'

services:
  my-sonar:
      image: sonarqube:7.1
      platform: linux/amd64
      ports:
        - 9001:9000
Run Code Online (Sandbox Code Playgroud)


BMi*_*tch 0

该存储库中的所有图像在 的清单列表中都有一个清单linux/amd64。您可以尝试直接拉取 sha,看看它是否与虚拟化一起运行。7.1 的标签目前是:

sonarqube@sha256:e36dcf59f4da62694a6e8265e6c56ca18596f59880f4cb6dd2c9efc6e0022405
Run Code Online (Sandbox Code Playgroud)

否则,您可以尝试为您的平台构建映像,但是上游映像似乎表明不支持此功能,并且他们也不会为 M1 修复它