Php Symfony 5和Docker:缺少RABBITMQ\u DSN环境变量
我刚刚设置了一个RabbitMQ Docker容器,用于Symfony 5.2应用程序。但我对Docker的自动暴露环境变量有问题 由于RabbitMQ容器已经启动并运行良好,我正在等待Symfony自动设置的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\u DSN
env var
奇怪的行为是,有时我确实得到了这个env var,但有时我没有(根据相同的请求!)
在转储我的环境变量时,我也会得到相同的行为(我发誓这两个命令之间没有变化…):
我试过几种方法:
- 将Docker RabbitMQ映像从3.7更新到3.8
- 清除Symfony缓存
- 具有自动和手动端口映射(在docker compose.yaml中)
- 更新了我的所有依赖项
.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)%'
你能告诉我你的解决办法是什么吗?在我工作的项目中,我们遇到了相同的问题。答案更新为变通方法。您能告诉我您的变通方法是什么吗?在我工作的项目中,我们遇到了相同的问题。答案已更新为解决方法