Php Symfony 5和Docker:缺少RABBITMQ\u DSN环境变量

Php Symfony 5和Docker:缺少RABBITMQ\u DSN环境变量,php,docker,symfony,rabbitmq,environment-variables,Php,Docker,Symfony,Rabbitmq,Environment Variables,我刚刚设置了一个RabbitMQ Docker容器,用于Symfony 5.2应用程序。但我对Docker的自动暴露环境变量有问题 由于RabbitMQ容器已经启动并运行良好,我正在等待Symfony自动设置的RabbitMQ\u DSNenv var 奇怪的行为是,有时我确实得到了这个env var,但有时我没有(根据相同的请求!) 在转储我的环境变量时,我也会得到相同的行为(我发誓这两个命令之间没有变化…): 我试过几种方法: 将Docker RabbitMQ映像从3.7更新到3.8 清除

我刚刚设置了一个RabbitMQ Docker容器,用于Symfony 5.2应用程序。但我对Docker的自动暴露环境变量有问题

由于RabbitMQ容器已经启动并运行良好,我正在等待Symfony自动设置的
RabbitMQ\u DSN
env var

奇怪的行为是,有时我确实得到了这个env var,但有时我没有(根据相同的请求!)

在转储我的环境变量时,我也会得到相同的行为(我发誓这两个命令之间没有变化…):

我试过几种方法:

  • 将Docker RabbitMQ映像从3.7更新到3.8
  • 清除Symfony缓存
  • 具有自动和手动端口映射(在docker compose.yaml中)
  • 更新了我的所有依赖项
但我还是被这个虫子缠住了。。。我正在Windows 10上运行此应用程序

有什么想法吗?

好的, 我通过使用另一个在
.env
文件中显式设置的env变量找到了一个解决方法

我不明白为什么有时候会缺少这个
RABBITMQ\u DSN
env变量

这里是解决方法

只需在
.env
文件中设置一个新的环境变量:

MESSENGER_TRANSPORT_DSN=amqp://guest:guest@127.0.0.1:49167
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
并使用它,而不是
messenger.yml
文件中缺少的
RABBITMQ_DSN

MESSENGER_TRANSPORT_DSN=amqp://guest:guest@127.0.0.1:49167
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
嗯, 我通过使用另一个在
.env
文件中显式设置的env变量找到了一个解决方法

我不明白为什么有时候会缺少这个
RABBITMQ\u DSN
env变量

这里是解决方法

只需在
.env
文件中设置一个新的环境变量:

MESSENGER_TRANSPORT_DSN=amqp://guest:guest@127.0.0.1:49167
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
并使用它,而不是
messenger.yml
文件中缺少的
RABBITMQ_DSN

MESSENGER_TRANSPORT_DSN=amqp://guest:guest@127.0.0.1:49167
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'

你能告诉我你的解决办法是什么吗?在我工作的项目中,我们遇到了相同的问题。答案更新为变通方法。您能告诉我您的变通方法是什么吗?在我工作的项目中,我们遇到了相同的问题。答案已更新为解决方法