【问题标题】:How to run RabbitMQ and Celery Service in Docker?如何在 Docker 中运行 RabbitMQ 和 Celery 服务?
【发布时间】:2018-07-30 09:29:52
【问题描述】:

我在从 Docker pull(远程拉取)运行我的 Python Flask 应用程序时遇到问题。 在我的应用程序中,我使用 RabbitMQ 作为消息代理,使用 Celery 作为任务调度程序。它在本地运行时按预期工作,但是当我将我的应用程序放在 Docker 上,并且 Docker 从远程系统中提取它时,它运行良好,但 Celery 和 RabbitMQ 没有运行它,所以所有任务(使用 method.delay() ) 正在无限运行,并且未处理 http 请求。

我需要帮助将我的 Python Flask 应用程序放到 Docker 中,因为我的应用程序有异步任务需要用 Celery 处理。我不知道如何修改 docker-compose.yml 以包含 Celery 服务。

先谢谢了。

【问题讨论】:

  • 到目前为止,您在 docker-compose.yml 中尝试过什么让 Celery 和 Rabbit 运行?
  • 版本:“3”服务:网络:图像:**图像名称**部署:副本:5资源:限制:CPU:“0.1”内存:50M restart_policy:条件:故障端口: -“4000:80”兔子:主机名:兔子图像:**图像名称** 环境:-RABBITMQ_DEFAULT_USER=admin -RABBITMQ_DEFAULT_PASS=admin 端口:-“15672:15672”-“5672:5672”tty:真正的芹菜:图像:* *image_name** 命令:celery worker -l info -A app.celery 用户:nobody 卷:-'.:/app'
  • 以上是我的docker-compose.yml文件
  • @Sunil 编辑并使用 docker-compose.yml 文件添加您的问题。不要在评论部分添加大的代码片段

标签: python docker flask rabbitmq celery


【解决方案1】:

我认为您需要将 celery 容器与 rabbitmq 链接。
来自https://docs.docker.com/compose/compose-file/#links

链接到另一个服务中的容器。要么指定服务名称和链接别名 (SERVICE:ALIAS),要么只指定服务名称。

links:
  - rabbitmq

或者

  - rabbitmq:rabbitmq

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2011-07-18
    • 2011-07-17
    相关资源
    最近更新 更多