3

我正在尝试使用 Laravel Sail 在 Laravel 中设置一个基本项目。根据Laravel 官方文档,以下命令将创建一个名为“example-app”的新 Laravel 应用程序并启动 Laravel Sail。

curl -s "https://laravel.build/example-app" | bash
cd example-app
./vendor/bin/sail up

但是,运行这些命令后,我看到以下错误消息:

ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
4

2 回答 2

7

在带有 Apple M1 芯片的 Mac 上使用 Laravel Sail 时会发生此错误。Laravel Sail 提供的 docker-compose 文件默认使用 MySQL。按照配置,docker-compose 文件正在尝试使用未知版本的 MySQL (linux/arm64/v8)。这将失败并显示上面的错误消息。

这可以通过打开 Laravel 项目根文件夹中的 docker-compose.yml 文件,搜索名为 mysql 的部分并在该image:行下方添加以下内容来解决

platform: 'linux/amd64'

添加此行将在 Mac M1 上模拟运行 Intel 映像。您可以在有关 Apple Silicon的官方Docker 文档和此处阅读有关此的一些背景信息。

如果您的用例可能,这也可以通过将图像切换到 MariaDB 而不是 MySQL 来解决。MariaDB 基本上与 MySQL 二进制兼容。如果可能的话,使用 MariaDB 可能是一个更好的选择,因为正如 Docker 文档中所述

由于 qemu 有时无法运行容器,因此尝试在 Apple Silicon 机器上运行基于 Intel 的容器进行仿真可能会崩溃。

在 M1 Mac 上的仿真中使用 MySQL 容器可能会导致启动 Sail 时出现分段错误等问题——事实上,我曾在一个案例中看到过这个问题。切换到 MariaDB 解决了这个问题。您可以通过将image:docker-compose.yml 文件中 mysql 服务的行更改为:

image: 'mariadb'

于 2021-06-12T12:21:34.380 回答
1

在 Github 上发布这个我想我也会把它留在这里https://github.com/laravel/framework/issues/38370

Laravel Version: 8.54.0
PHP Version: 8.0
Database Driver & Version: MySQL 8
MacOS: Big Sur 11.5.2

Mac M1 Docker Laravel Sail MySQL 8 不会拉臂拱 示例应用程序不会在 M1 芯片上“起航”(docker-compose up)

错误:

Pulling mysql (mysql:8.0)...
8.0: Pulling from library/mysql
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

https://github.com/laravel/framework/blob/fc0a4a7400cf528d05fd5660ffe8db372c50baa9/docker-compose.yml#L9

一个简单的解决方法是改用 MariaDB:

码头工人-compose.yml:

    mysql:
        image: 'mariadb'

完毕

如果你真的需要 MySQL:

由 docker 推荐,我不需要。

打开终端-> softwareupdate --install-rosetta

Docker-compose.yml

    mysql:
        platform: linux/x86_64
        image: 'mysql:8.0'

之后,将拉取正确的 MySQL 映像。

sail up

Pulling mysql (mysql/mysql-server:8.0.23)...
8.0.23: Pulling from mysql/mysql-server

完毕

其他链接: https : //docs.docker.com/docker-for-mac/apple-silicon/ Docker(Apple Silicon/M1 Preview) MySQL“清单列表条目中没有与 linux/arm64/v8 匹配的清单”

于 2021-08-13T10:32:46.167 回答