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
THE END
二维码