【问题标题】:Docker (Apple Silicon/M1 Preview) sonarqube “no matching manifest for linux/arm64/v8 in the manifest list entries”Docker(Apple Silicon/M1 Preview)sonarqube“清单列表条目中没有与 linux/arm64/v8 匹配的清单”
【发布时间】:2021-06-03 12:23:10
【问题描述】:

这是我的 YAML 文件。

文件名 - docker-compose.mysonar.yml

version: '2'
services:
    my-sonar:
        image: sonarqube:7.1
        ports:
            - 9001:9000

当我跑步时 docker-compose -f docker-compose.mysonar.yml up 它抛出错误 - “清单列表条目中没有 linux/arm64/v8 的匹配清单”

我该如何解决这个问题?

【问题讨论】:

  • arm64 不支持默认声纳,并且在 docker hub 中找不到。试试用这个怎么样:amd64/sonarqube

标签: docker terminal apple-m1


【解决方案1】:

Apple 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

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

【讨论】:

  • 顺便感谢您主动构建 M1 映像
【解决方案2】:

--平台linux/x86_64

将上面的这个标志用于不工作的命令。

例如。

docker run --platform linux/x86_64 sonarqube 

希望对你有帮助:)

【讨论】:

  • 不,您不能使用 --platform linux/x86_64 运行。它基于 arm64 架构
  • 我已经这样做了...^
  • 刚发现它在 amd64 qemu 仿真上运行,不会给你最大的努力。您将失去一些性能,并可能耗尽您的电池。您也可以在这里查看已知问题 - docs.docker.com/desktop/mac/apple-silicon
  • 哦,你能推荐一些其他更好的方法吗?
  • 您可以在 M1 芯片上构建自己的 docker 镜像或使用已经创建的 arm64 docker 镜像。我已经添加了答案,你可以如何做到这两点。
【解决方案3】:

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

sonarqube@sha256:e36dcf59f4da62694a6e8265e6c56ca18596f59880f4cb6dd2c9efc6e0022405

否则您可以尝试为您的平台构建映像,但是上游映像似乎表明这是not supported,而他们是won't fix it for the M1's either

【讨论】:

猜你喜欢
  • 2021-04-03
  • 2023-02-18
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多