芹菜+ rabbitmq在Docker上

我试图按照这个教程如何在10分钟内用芹菜和RabbitMQbuild立docker集群 。

跟着教程,虽然我改变了以下文件。 我docker-compose.yml文件如下所示:

 version: '2' services: rabbit: hostname: rabbit image: rabbitmq environment: - RABBITMQ_DEFAULT_USER=user - RABBITMQ_DEFAULT_PASS=pass - HOSTNAME=rabbitmq - RABBITMQ_NODENAME=rabbitmq ports: - "5672:5672" # we forward this port because it's useful for debugging - "15672:15672" # here, we can access rabbitmq management plugin worker: build: context: . dockerfile: Dockerfile volumes: - .:/app links: - rabbit depends_on: - rabbit 

test_celery/celery.py

 from __future__ import absolute_import, unicode_literals from celery import Celery app = Celery('test_celery',broker='amqp://user:pass@rabbit:5672//',backend='rpc://', include=['test_celery.tasks']) 

Dockerfile

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

我使用以下命令运行代码(我的操作系统是Ubuntu 16.04):

 sudo docker-compose build sudo docker-compose scale worker=5 sudo docker-compose up 

屏幕上的输出如下所示:

 rabbit_1 | closing AMQP connection <0.501.0> (172.19.0.6:60470 -> 172.19.0.7:5672, vhost: '/', user: 'admin'): rabbit_1 | client unexpectedly closed TCP connection rabbit_1 | rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 === rabbit_1 | closing AMQP connection <0.479.0> (172.19.0.6:60468 -> 172.19.0.7:5672, vhost: '/', user: 'admin'): rabbit_1 | client unexpectedly closed TCP connection rabbit_1 | rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 === rabbit_1 | closing AMQP connection <0.366.0> (172.19.0.4:44754 -> 172.19.0.7:5672, vhost: '/', user: 'admin'): rabbit_1 | client unexpectedly closed TCP connection rabbit_1 | rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 === rabbit_1 | closing AMQP connection <0.359.0> (172.19.0.4:44752 -> 172.19.0.7:5672, vhost: '/', user: 'admin'): rabbit_1 | client unexpectedly closed TCP connection worker_1 | [2017-06-08 03:34:19,138: INFO/MainProcess] missed heartbeat from celery@f77048a9d801 worker_1 | [2017-06-08 03:34:24,140: INFO/MainProcess] missed heartbeat from celery@79aa2323a472 worker_1 | [2017-06-08 03:34:24,141: INFO/MainProcess] missed heartbeat from celery@93af751ed1b5 

然后在同一个目录中运行

 python -m test_celery.run_tasks 

而从这个输出给我:

kombu.exceptions.OperationalError: timed out错误,我不知道如何解决,并获得相同的输出在教程中。

由于输出和错误报告,“客户端意外closuresTCP连接”,“kombu.exceptions.OperationalError:超时”,似乎RabbitMQ没有按预期启动。 你能运行命令“docker ps -a”来检查Rabbit容器的状态吗? 如果退出,“docker logs container-id”会打印出Rabbit容器的日志。