【发布时间】:2021-10-18 23:52:20
【问题描述】:
我在一台装有 Apple M1 处理器的机器上克隆了一个现有的应用程序。然后使用以下命令将其带入(Ref)。
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/opt \
-w /opt \
laravelsail/php74-composer:latest \
composer install --ignore-platform-reqs
然后也尝试了:
docker run --rm --platform linux/amd64 \
-u "$(id -u):$(id -g)" \
-v $(pwd):/opt \
-w /opt \
laravelsail/php74-composer:latest \
composer install --ignore-platform-reqs
这两个命令都失败并显示相同的消息:
> @php artisan package:discover --ansi
Doctrine\DBAL\Driver\PDO\Exception
could not find driver
at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
14▕ final class Exception extends PDOException
15▕ {
16▕ public static function new(\PDOException $exception): self
17▕ {
➜ 18▕ return new self($exception);
19▕ }
20▕ }
21▕
+1 vendor frames
2 [internal]:0
Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(App\Providers\AppServiceProvider))
+18 vendor frames
21 app/Providers/AppServiceProvider.php:94
Illuminate\Support\Facades\Facade::__callStatic("listen")
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
但是,我可以从主机和容器内部执行php artisan package:discover --ansi 命令:
./vendor/bin/sail artisan package:discover --ansi
["select * from `data_types`",[],79.14]
Discovered Package: arrilot/laravel-widgets
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: intervention/image
Discovered Package: kreait/laravel-firebase
Discovered Package: larapack/doctrine-support
Discovered Package: larapack/voyager-hooks
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: lexxyungcarter/chatmessenger
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: tcg/voyager
Package manifest generated successfully.
感谢您对此问题的任何帮助。
【问题讨论】:
-
您尝试过什么解决问题的方法?
could not find driver通常在未安装已配置数据库的驱动程序时抛出。这不是 Composer 的问题,而是您的应用程序的问题 -
Laravel Sail 使用 Docker 容器。在 x86 处理器上,Laravel Sail 工作得很好。在 Apple Silicone 上运行时,问题不在于我的应用程序,而在于 Laravel Sail 或 Docker。
-
问题很可能出在 laravelsail/php74-composer:M1 处理器上的最新图像。
-
你尝试过什么来解决这个问题?您使用哪个数据库?安装了哪些驱动程序?
-
如果您在安装包的过程中运行脚本,任何事情都可能发生。如果您想避免这种情况,请使用
no-scripts标志
标签: php laravel composer-php apple-m1 laravel-sail