问答中心分类: MYSQLDocker(Apple Silicon/M1 Preview)MySQL“清单列表条目中没有与 linux/arm64/v8 匹配的清单”
0
匿名用户 提问 1月 前

我正在运行最新版本的Docker 苹果硅预览。我创建了教程容器/图像,它工作正常。当我去创建一个自定义 YAML 文件并运行 docker-compose 时,我在拉取 mysql 时收到以下错误:
错误:清单列表条目中没有与 linux/arm64/v8 匹配的清单
这是我的 YAML 文件中的一个片段:

version: '3'

services:
  # Database
  db:
    image: mysql-server:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: pass
      MYSQL_DATABASE: wp
      MYSQL_USER: wp
      MYSQL_PASSWORD: wp
    networks:
      - wpsite

我试过 :latest 和 :8 导致同样的错误。它可以很好地拉动 phpmyadmin 和 wordpress。

jonrsharpe 回复 1月 前

MySQL 维护人员为该架构推送了一个图像?

jonrsharpe 回复 1月 前

只有amd64图像…mysql 标签 \- Docker 集线器

jonrsharpe 回复 1月 前

奇怪,我相信 MySQL 支持 ARM 源码:mysqlonarm.github.io/Running-MySQL-on-ARM

jonrsharpe 回复 1月 前

@AkihitoKIRISAKIhub.docker.com/r/mysql/mysql-server/…(服务器)看起来一样,但会安装。

jonrsharpe 回复 1月 前

@山姆mysql-server:5.7版本太旧了,不支持arm64!hub.docker.com/layers/mysql/mysql-server/5.7/images/…

17 Answers
0
mstgnz 回答 1月 前

m1 mac 的同样问题只需运行此命令

docker pull --platform linux/x86_64 mysql
Marko 回复 1月 前

在 mac mini m1 上工作,尽管我不得不添加 v8:linux/x86_64/v8

Pravanjan 回复 1月 前

为我工作 MacBook Pro(13 英寸,M1,2020 年)

Kudos 回复 1月 前

谢谢…在 Mac M1 Pro 上工作

mavili 回复 1月 前

为什么这没有被接受为答案@Sam

0
Luke Madhanga 回答 1月 前

这个答案,我将此添加到我的本地docker-compose.override.yml

services:

  mysql:
    platform: linux/amd64
Yala Herzlin 回复 1月 前

这实际上是为我做的。 m1 专业 14 英寸

Dylan Glockler 回复 1月 前

M1 pro,尝试了上面的答案,没有运气,但这对我有用

Morgenstern 回复 1月 前

我还将 mysql 版本 5.7.22 更改为 5.7

Aquarelle 回复 1月 前

不适合我

0
bpossolo 回答 1月 前

Oracle 为 arm64 维护一个 MySQL 8.0.23 docker 映像。
https://hub.docker.com/r/mysql/mysql-server
在 docker-compose 文件中使用它

version: "3.8"
services:
  mysql:
    container_name: mycontainername
    image: mysql/mysql-server:8.0.23
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydatabasename
      MYSQL_ROOT_HOST: "%"
    command: --lower_case_table_names=1
csaborio 回复 1月 前

像魅力一样工作,Mac Mimi M1,谢谢!

tmm1 回复 1月 前

我也用过command: --default-authentication-plugin=mysql_native_password基于stackoverflow.com/a/52789430/332798

Pedro Soares 回复 1月 前

对我来说很好。 MacBook Pro m1

Écio Silva 回复 1月 前

为我工作。 Mac Air M1 2020 大苏尔。我尝试了选择的答案,但有人警告我模拟 linux/x86_64 可能会产生内存开销错误。非常感谢。

Aquarelle 回复 1月 前

这对我根本不起作用。我得到了与 OP 相同的错误(“清单列表条目中没有与 linux/arm64/v8 匹配的清单”)。我还尝试将平台设置为“linux/amd64”、“linux/x86_64”和“linux/x86_64/v8”,但仍然收到相同的错误。看起来即使在 2022 年 9 月,无论有没有仿真,在 Docker 下运行 MySQL 仍然是不可能的。我不敢相信任何地方都没有人为 M1 编译过 MySQL。

bpossolo 回复 1月 前

@Aquarelle 显然您的设置有问题,因为我和无数其他人在 Apple M1 处理器上运行 MySQL 非常好(有和没有仿真)。您花了一点时间阅读我上面提到的图像的 Dockerfile,您会看到 Oracle 明确表示它是为 ARM 编译的。hub.docker.com/r/mysql/mysql-server

Aquarelle 回复 1月 前

@bpossolo 原谅愤怒的咆哮。如果可能的话,我什至可以删除我的评论。问题完全出在 PEBKAC 上(我一直将 docker compose 指向 shell 脚本中的一个旧的、过时的 compose 文件,直到几个小时前我才意识到这一点,那时我面对然后更新了脚本)。现在一切都很顺利。对不起!

bpossolo 回复 1月 前

很高兴你把它整理出来!

0
octaedro 回答 1月 前

Docker 在其官方文档中说:

并非所有映像都可用于 ARM64 架构。你可以加--platform linux/amd64在仿真下运行英特尔映像。特别是 mysql 映像不适用于 ARM64。您可以使用 mariadb 映像解决此问题。

(资源这里)
所以你应该做的是让你的项目工作是添加platform: linux/amd64到你的 docker-compose.yml。
它看起来像:

services:
    mysql:
        image: mysql:5.7
        platform: linux/amd64
        ...

正如您可以想象的那样,性能可能会有所不同。

0
Misha Ishikawa 回答 1月 前

我有一个类似的问题,用我的 dockerfile 中的这一行解决了:

FROM ubuntu:18.04

FROM --platform=linux/x86_64 ubuntu:18.04
Louwki 回复 1月 前

这很好用,您只需将其添加到 laradock 的 mysql docker 文件 FROM –platform=linux/x86_64 mysql:${MYSQL_VERSION}