【问题标题】:No route found for "GET /user" on Symfony 5 in docker container在 docker 容器中的 Symfony 5 上找不到“GET /user”的路由
【发布时间】:2021-06-29 05:58:20
【问题描述】:

为了创建一个 web 服务,我创建了一个新项目,其中包含一个容器 php-nginx 用于 web-server,postgresql-13 用于 db,所以我创建了我的Dockerfile 基于 FROM php:7.4-fpm-alpine 用于 php-nging 容器和 docker-compose.yml 用于我的开发。
之前为了运行容器,我在本地(Ubuntu Bionic 下的主机)文件夹中创建了 symfony squeleton 并运行 make:entity usermake:crud User 以获得基本视图。

运行容器后,我尝试打开 url localhost:8000/user 并返回:
No route found for "GET /user"

我用php bin/console debug:router检查我的本地(主机),它返回:

…
user_index                 GET        ANY      ANY    /user/                             
user_new                   GET|POST   ANY      ANY    /user/new                          
user_show                  GET        ANY      ANY    /user/{id}

路线似乎还可以
但是如果我在容器中做同样的事情,用户就没有路由。

问题是为什么路由在主机中是可以的,而不是在 docker 容器中?

【问题讨论】:

  • 请分享更多细节和你的调试尝试
  • @Nico,感谢您的关注,我可以添加我的 Dockerfile 和 docker-compose.yml 但我看不出它对遇到同样问题的人有什么帮助?并且关于调试主机和容器中的调试:路由器是关键,其他测试,例如关于容器中的文件或文件夹所有者的测试无助于理解问题
  • 欢迎提供更多详细信息,以确保这有助于解决相同问题的其他人。如果不提供任何解决问题的尝试(例如:Dockerfiles、PHP 配置、Symfony 配置),很可能没有人可以提供帮助,因此没有人可以从您的情况中学习
  • @NicoHaase 如果我没有找到解决这个问题的方法,我同意你的看法,但随着它的解决,我认为这足以帮助人们如何在 docker 中使用 Sf5 出现此错误,不?

标签: php docker symfony php-8


【解决方案1】:

所以我连接到容器docker exec -it my-web-container sh,
然后测试创建一个新实体…php bin/console make:entity test 并在 src/Controller

中查看路由

注解不同:

/**
 * @Route("/test")
 */
class TestController extends AbstractController

对于用户:

#[Route('/user')]
class UserController extends AbstractController

原因是即使我使用带有默认 PHP 7.2 的 Ubuntu 仿生,我最近也更新到了 PHP 7.4(使用 ppa:ondrej/php)支持……并且它更新到了 PHP-8!当我从主机制作:实体时,它使用新的 PHP 8 注释而不是 Doctrine 注释,请查看https://symfony.com/blog/new-in-symfony-5-2-php-8-attributes 了解更多详细信息。

解决方案 1:将我的容器切换到 PHP 8

通过更改为FROM php:8-fpm-alpine来更新我的容器

解决方案 2:使用 Doctrine 注释

但它需要在容器内制作:实体......或者手动编写它......但也许有一个配置来定义我们想要保留在教义注释中?

【讨论】:

    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多