当前位置: 首页 > 知识库问答 >
问题:

在Laravel上使用Sail时没有匹配清单错误

阎知
2023-03-14

我正在尝试使用Laravel Sail在Laravel建立一个基础项目。根据Laravel官方文档,以下命令将创建一个名为“示例应用程序”的新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

共有1个答案

濮冠宇
2023-03-14

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

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

platform: 'linux/amd64'

添加这一行将在Mac M1上运行模拟下的英特尔映像。你可以在Docker关于Apple Silicon的官方文件和这里阅读一些背景信息。

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

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

在M1 Mac上使用MySQL容器进行仿真可能会导致一些问题,比如启动Sail时出现分段错误——事实上,我在一个案例中看到了这个问题。切换到MariaDB解决了这个问题。通过更改docker compose中MySQL服务的image:行,可以将Laravel Sail切换到MariaDB而不是MySQL。yml文件发送至:

image:'mariadb'

 类似资料:
  • 我在Windows上使用Docker,当我试图用这个命令拉一个PHP图像时 我收到了这条消息: 我如何解决这个问题?

  • 问题内容: 我正在尝试使用简单的Chrome扩展程序,但是在为数组提供值时遇到了问题。 当我尝试将此扩展程序加载到Chrome中时,收到以下消息: 无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。 “ content_scripts”的值无效。 我看不到我的值是什么“无效”。我想做的是匹配每个URL,以便我的扩展程序可以操纵它所运行的

  • 问题内容: 我想测试对象的特定字段是否与我指定的值匹配。在这种情况下,它是S3Bucket对象内的存储桶名称。据我所知,我需要为此编写一个自定义匹配器: 如果有一个更简单的方法可以做到这一点,那就好了: 谁能指出我类似的东西?我想在这种情况下我已经解决了我的问题,但这不是我第一次希望采用一种更简单的方法。 问题答案: 另外,对于更类型安全的版本,还有FeatureMatcher。在这种情况下,类似

  • 我是c语言的新手。当我运行代码时,出现以下错误:( 大Sorting.cpp:在函数int main(int, const char**)中:大Sorting.cpp:13: 22:错误:没有匹配函数调用std::向量 这是我的代码

  • 我正试图从服务器获取一个文本文件,所以我已经这样做了: 它完全按照我想要的方式工作。然而编译器痛苦地大喊: https://angular.io/api/common/http/httpclient#get 我在这里做错了什么?

  • 这是我的YAML文件。 文件名-docker-compose.mysonar.yml 当我运行docker compose-f docker compose时。迈索尔。yml up它抛出错误——“清单列表条目中没有与linux/arm64/v8匹配的清单” 我该怎么解决这个问题?