gpt4 book ai didi

laravel - 在 Laravel 上使用 Sail 时没有匹配的 list 错误

转载 作者:行者123 更新时间:2023-12-04 16:24:36 26 4
gpt4 key购买 nike

我正在尝试使用 Laravel Sail 在 Laravel 中设置一个基本项目。根据official Laravel documentation以下命令将创建一个名为“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

最佳答案

在带有 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 镜像。您可以在官方的 Docker document about Apple Siliconhere 中阅读有关这方面的一些背景信息。

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

Attempts to run Intel-based containers on Apple Silicon machines underemulation can crash as qemu sometimes fails to run the container.

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

将 Laravel Sail 切换到 MariaDB 而不是 MySQL

图像:'mariadb'

关于laravel - 在 Laravel 上使用 Sail 时没有匹配的 list 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67948804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com