![](/img/trans.png)
[英]docker commit apache container to image brings trouble
[英]Trouble accessing a local process in another docker container
我正在尝试从PHP连接到RabbitMQ docker容器。 我收到的错误是Uncaught exception 'ErrorException' with message 'stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known'
。 我认为这是我如何将程序指向RabbitMQ流程的问题。
我认为导致错误的代码段是
$connection = new AMQPStreamConnection(getenv('MESSAGE_BROKER_HOST'), 5672, 'guest', 'guest');
我正在访问的环境变量在.env中定义为
MESSAGE_BROKER_HOST=amqp://rabbitmq
我不太习惯docker,但是我认为这应该可行,因为运行此代码的过程在docker-compose文件中链接了RabbitMQ作为“ rabbitmq”。
该MESSAGE_BROKER_HOST
ENV应rabbitmq
不amqp://
因为phpamqp-lib中不支持的DSN。
如果您想使用真正的DSN,请查看enqueue / amqp-lib 。
代码如下所示:
<?php
use Enqueue\AmqpLib\AmqpConnectionFactory;
$factory = new AmqpConnectionFactory('amqp://guest:guest@rabbitmq:5672/%2f');
您的方法看起来不错。 我能想到的唯一问题是guest
用户权限不足。 RabbitMQ的默认guest
用户只能从本地主机访问。 尽管权限不足不应引发unknown service
错误。
尝试创建一个新用户可能会解决该问题。 有关来宾用户权限的详细信息,可以查看以下链接: https : //www.rabbitmq.com/access-control.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.