提问人:Onur 提问时间:11/17/2023 更新时间:11/18/2023 访问量:23
Symfony在docker安装时失败
Symfony run fails on docker installation
问:
当我尝试通过docker compose运行我的Symfony项目时,我收到以下错误。这是错误:
Script cache:clear returned with error code 255
!! Symfony\Component\ErrorHandler\Error\ClassNotFoundError {#76
!! #message: """
!! Attempted to load class "MakerBundle" from namespace "Symfony\Bundle\MakerBundle".\n
!! Did you forget a "use" statement for another namespace?
!! """
!! #code: 0
!! #file: "./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php"
!! #line: 132
!! trace: {
!! ./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:132 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:386 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:788 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:128 { …}
!! ./vendor/symfony/framework-bundle/Console/Application.php:168 { …}
!! ./vendor/symfony/framework-bundle/Console/Application.php:74 { …}
!! ./vendor/symfony/console/Application.php:171 { …}
!! ./vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php:54 { …}
!! ./vendor/autoload_runtime.php:35 { …}
!! ./bin/console:11 {
!! ›
!! › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
!! ›
!! arguments: {
!! "/var/www/html/vendor/autoload_runtime.php"
!! }
!! }
!! }
!! }
!! 2023-11-17T17:16:04+03:00 [critical] Uncaught Error: Class "Symfony\Bundle\MakerBundle\MakerBundle" not found
问题在于,makerbundle 不应该在非开发环境中。当我从 composer.json 文件中删除它时,它按预期工作,否则会导致问题。我现在应该怎么做?谢谢你的建议。
答:
1 - 安装 MakerBundle:“检查 MakerBundle 是否安装了 composer require symfony/maker-bundle --dev。这将安装它以供开发使用。
2 - 捆绑包配置:“确保 MakerBundle 在捆绑.php包中配置为 Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],用于开发环境加载。”
3 - 手动清除缓存:“尝试通过删除 var/cache 目录手动清除缓存,然后重新运行该命令。”
不要在不适合的环境中执行该脚本。相反,只在它所针对的环境中执行它。
使用 Composer 的相应命令行标志控制脚本和插件的执行,在您使用的 Composer 版本的手册中查找它们(例如 --no-plugins 和 --no-scripts
,但这可以在 composer 版本和命令之间更改)。
更好的是,不要将它们放在不需要它们的环境中,那么它们就无法执行。参见 Adrian98dos 的回答。
只使用具有正确配置的正确工具来完成工作,否则预计事情会破裂,并让自己具备开始阅读晚点所需的心态。这些事情都有记录在案。
我明白原因了。原因是APP_ENV变量在测试环境中的值为“dev”,因此系统正在尝试使用 MakerBundle。我用“test”更新了值,现在它按预期工作。
评论