Для настройки доступа к RabbitMQ из docker контейнера потребуется:
- Установить расширение amqp для php
В Dockerfile с настройками php добавить строки:
RUN apt-get install librabbitmq-dev -y RUN pecl install amqp \ && docker-php-ext-enable amqp
Без установки данного расширения возникнет ошибка:
You cannot use the "Symfony\Component\Messenger\Bridge\Amqp\Transport\Connection" as the "amqp" extension is not installed.
Без librabbitmq-dev не получится собрать amqp:
No releases for package "pecl/amqp" exist install failed ERROR: Service '****' failed to build: The command '/bin/sh -c pecl install amqp && docker-php-ext-enable amqp' returned a non-zero code: 1
- Добавление контейнера в docker-compose.yaml
rabbitmq: image: rabbitmq:3-management ports: - "5672:5672" - "15672:15672"
- Выполнить:
docker-compose build
- Войти в контейнер с установленной Symfony
- Установить компонент Messenger в Symfony
composer req messenger
- Установить Symfony AMQP Messenger
require symfony/amqp-messenger
- В файле конфигурации (.env) в MESSENGER_TRANSPORT_DSN заменить localhost на имя контейнера с RabbitMQ
MESSENGER_TRANSPORT_DSN=amqps://guest:guest@localhost/%2f/messages