[英]RabbitMQ configuration problems
我對如何使用以下 rabbit 環境配置有疑問。
rabbit_mq:
image: rabbitmq:3-management-alpine
container_name: 'rabbitmq'
hostname: rabbitmq
ports:
- 5672:5672
- 15672:15672
volumes:
- ./docker/rabbitmq/data/:/var/lib/rabbitmq/
- ./docker/rabbitmq/log/:/var/log/rabbitmq
- ./docker/rabbitmq/conf/:/var/conf/rabbitmq
environment:
#(I comment this now but before I used this)
# RABBITMQ_HOST: rabbitmq
# RABBITMQ_PORT: 15672
# RABBITMQ_VHOST: /
RABBITMQ_DEFAULT_USER: guest
#(I also tried to use RABBITMQ_USER)
RABBITMQ_DEFAULT_PASS: guest
#(and I also tried to use RABBITMQ_PASS & RABBITMQ_PASSWORD)
我需要使用環境配置來連接到服務器。 有我的 PHP 代碼:
$connection = new AMQPStreamConnection($_ENV['RABBITMQ_HOST'], $_ENV['RABBITMQ_PORT'], $_ENV['RABBITMQ_DEFAULT_USER'], $_ENV['RABBITMQ_DEFAULT_PASS']);
我嘗試了很多東西,例如,我創建了一個rabbitmq.env
文件,並將配置寫在那里,但它不起作用
另外,還有一個錯誤——
Fatal error: Uncaught PhpAmqpLib\Exception\AMQPIOException: stream_socket_client(): unable to connect to tcp://: (Failed to parse address ":") in /app/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:108
如何解決這個問題?
好的,答案是:我必須在 php 容器中編寫此配置,而不是在 rabbitmq 容器中,所以有 docker-compose 代碼:
send:
build:
context: './docker'
dockerfile: Dockerfile
image: php:7.4.cli
container_name: send
ports:
- 8000:8000
volumes:
- ./:/app
environment:
RABBITMQ_HOST: '${RABBIT_HOST}'
RABBITMQ_PORT: '${RABBIT_PORT}'
RABBITMQ_USERNAME: '${RABBIT_USERNAME}'
RABBITMQ_PASSWORD: '${RABBIT_PASSWORD}'
depends_on:
- rabbit_mq
command: ["php", "./send.php"]
並在根目錄中添加 .env 文件:
RABBIT_HOST=rabbitmq
RABBIT_PORT=5672
RABBIT_USERNAME=guest
RABBIT_PASSWORD=guest
我的PHP代碼:
$connection = new AMQPStreamConnection($_ENV['RABBITMQ_HOST'], $_ENV['RABBITMQ_PORT'], $_ENV['RABBITMQ_USERNAME'], $_ENV['RABBITMQ_PASSWORD']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.