dockerize我的Flask时无法启动RabbitMQ-Celery-RabbitMQ应用程序

时间:2018-07-24 23:37:11

标签: docker flask rabbitmq celery

我是Docker的新手,我想对连接到sqlite数据库的Flask-Celery-RabbitMQ应用进行Docker化。

这是我的树文件:

--dockerized_app
--celery_app
    --app
         --__init__.py
         --routes.py
         --modules.py
         --celery_endpoints.py
    run.py
    config.py
Dockerfile
requirements.txt
docker-compose.yml
my_db.db

如果我想在没有Docker的情况下运行此应用程序,我通常会这样做:

PATH=$PATH:/usr/local/sbin 
rabbitmq-server 

export FLASK_APP=run.py
flask run

celery -A run.celery worker --loglevel=info

Dockerfile

FROM python:3
ADD requirements.txt /app/requirements.txt
ADD ./celery_app/ /app/
WORKDIR /app/
RUN pip install -r requirements.txt
ENTRYPOINT celery -A celery_app worker --loglevel=info

docker-compose.yml

version: '3'
services:

    rabbit:
        hostname: rabbit
        image: rabbitmq:latest
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=mypass
        ports:
            - "5673:5672"

    worker:
        build:
            context: .
            dockerfile: Dockerfile
        volumes:
            - .:/app
        links:
            - rabbit
        depends_on:
            - rabbit

requeriments.txt

Flask==1.0.2
Flask-SQLAlchemy==2.3.2
SQLAlchemy==1.2.7
celery==4.2.1

我运行docker-compose build,然后创建映像。芹菜启动很好,但是rabbitMQ没有,我得到了这个错误:

[2018-07-25 14:51:12,218: ERROR/MainProcess] consumer: Cannot connect 
to amqp://guest:**@XXX.X.X.X:5672//: [Errno 111] Connection refused.

我认为问题是我没有宣布

PATH=$PATH:/usr/local/sbin 

这是启动RabbitMQ所必需的,但是我不知道该怎么做。

我也不知道Flask是否进展顺利。

0 个答案:

没有答案