Docker(AppleSilicon/M1Preview)MySQL“在清单列表条目中没有与linux/arm64/v8匹配的清单”

我正在运行Docker Apple Silicon Preview的最新版本。我创建了教程容器/图像,它工作正常。当我创建自定义 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。

回答

好吧,从技术上讲,它不会解决您的问题(在 ARM 上运行 MySQL),但就目前而言,您可以添加platform到您的服务中,例如:

services:
  db:
    platform: linux/x86_64
    image: mysql:5.7
    ...

或者,考虑使用 MariaDB,它应该可以作为替代品使用,例如:

services:
  db:
    image: mariadb:10.5.8
    ...

两种方式都适用于我在 M1 上使用 Docker 预览

  • That actually worked!! 🙂

回答

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

docker pull --platform linux/x86_64 mysql

  • worked on m1 air

回答

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


回答

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

FROM ubuntu:18.04

FROM --platform=linux/x86_64 ubuntu:18.04


以上是Docker(AppleSilicon/M1Preview)MySQL“在清单列表条目中没有与linux/arm64/v8匹配的清单”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>