2017-06-22 886 views
3

我想用docker和rabbitMQ来建立我的气流。我正在使用rabbitmq:3管理映像。我可以访问rabbitMQ UI和API。消费者:无法连接到amqp://用户:** @ localhost:5672 //:[Errno 111]连接被拒绝

在气流中我建立气流webserver,气流调度程序,气流工作者和气流花。 Airflow.cfg文件用于配置气流。

当我使用broker_url = amqp://user:[email protected]:5672/celery_result_backend = amqp://user:[email protected]:5672/

我的码头工人撰写文件如下

version: '3' 
services: 
    rabbit1: 
    image: "rabbitmq:3-management" 
    hostname: "rabbit1" 
    environment: 
     RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG" 
     RABBITMQ_DEFAULT_USER: "user" 
     RABBITMQ_DEFAULT_PASS: "password" 
     RABBITMQ_DEFAULT_VHOST: "/" 
    ports: 
     - "5672:5672" 
     - "15672:15672" 

    labels: 
     NAME: "rabbitmq1" 

    webserver: 
    build: "airflow/" 
    hostname: "webserver" 
    restart: always 
    environment: 
     - EXECUTOR=Celery 
    ports: 
     - "8080:8080" 
    depends_on: 
     - rabbit1 
    command: webserver 

    scheduler: 
    build: "airflow/" 
    hostname: "scheduler" 
    restart: always 
    environment: 
     - EXECUTOR=Celery 
    depends_on: 
     - webserver 
     - flower 
     - worker 
    command: scheduler 

    worker: 
    build: "airflow/" 
    hostname: "worker" 
    restart: always 
    depends_on: 
     - webserver 
    environment: 
     - EXECUTOR=Celery 
    command: worker 

    flower: 
    build: "airflow/" 
    hostname: "flower" 
    restart: always 
    environment: 
     - EXECUTOR=Celery 
    ports: 
     - "5555:5555" 
    depends_on: 
     - rabbit1 
     - webserver 
     - worker 
    command: flower 

我能够建立使用泊坞窗景。但是,我无法将我的气流调度程序连接到rabbitMQ。我得到以下错误:

consumer: Cannot connect to amqp://user:**@localhost:5672//: [Errno 111] Connection refused.

我试过使用127.0.0.1和localhost都。

我做错了什么?

回答

3

从您的airflow集装箱内,您应该能够连接到服务rabbit1。所以你所要做的就是把amqp://user:**@localhost:5672//:更改为amqp://user:**@rabbit1:5672//:,它应该可以工作。

Docker撰写创建默认网络,并将未明确定义网络的服务附加到该网络。

除非您希望能够从应用程序外部访问,否则不需要公开rabbit1上的5672 & 15672端口。

此外,通常不推荐在docker-compose中构建图像。

相关问题