@VladimirKrasnov

Как работать с RabbitMQ через докер?

Мой проект работает в Docker и для работы с RabbitMQ я установил пакет из GitHub vyuldashev / laravel-queue-rabbitmq

Я получаю ошибку подключения на любых портах
stream_socket_client(): unable to connect to tcp://127.0.0.1:15672 (Connection refused)


Это моя конфигурация docker-compose для Rabbit
#RabbitMQ
rabbit:
    image: "rabbitmq:3-management"
    hostname: "rabbit"
    environment:
        RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG"
        RABBITMQ_DEFAULT_USER: "rabbitmq"
        RABBITMQ_DEFAULT_PASS: "rabbitmq"
        RABBITMQ_DEFAULT_VHOST: "/"
    ports:
        - "15672:15672"
        - "5672:5672"
    labels:
        NAME: "rabbitmq"


И конфигурация кролика
'rabbitmq' => [

       'driver' => 'rabbitmq',
       'queue' => env('RABBITMQ_QUEUE', 'default'),
       'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,
   
       'hosts' => [
           [
               'host' => env('RABBITMQ_HOST', '127.0.0.1'),
               'port' => env('RABBITMQ_PORT', 15672),
               'user' => env('RABBITMQ_USER', 'rabbitmq'),
               'password' => env('RABBITMQ_PASSWORD', 'rabbitmq'),
               'vhost' => env('RABBITMQ_VHOST', '/'),
           ],
       ],
   
       'options' => [
           'ssl_options' => [
               'cafile' => env('RABBITMQ_SSL_CAFILE', null),
               'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
               'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
               'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
               'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
           ],
           'queue' => [
               'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,
           ],
       ],
   
       /*
        * Set to "horizon" if you wish to use Laravel Horizon.
        */
       'worker' => env('RABBITMQ_WORKER', 'default'),
        
    ],


Также я изменил файл .env
QUEUE_CONNECTION=rabbitmq
  • Вопрос задан
  • 2990 просмотров
Решения вопроса 1
glaphire
@glaphire
PHP developer
Если реббит в отдельном контейнере, то нужно чтобы лара и реббит были в одной подсети докера,у Вас в docker-compose написаны только настройки контейнера без подсети)
https://forums.docker.com/t/internal-network-betwe...
В комментах есть примеры, от чего отталкиваться при поиске
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
Проект тоже крутится в докере? Если да, то стучать надо во внешний интерфейс хост системы, либо, что лучше - линковать контейнры проекта и раббита (либо с помощью docker-compose , либо с помощью опции --link) и обращаться по имени контейнера раббита
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы