[英]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.