在Django应用程序中构建Celery容器

时间:2018-04-25 17:12:22

标签: django docker docker-compose yaml celery

我想学习如何使用Celery设置Django应用程序。我使用以下resource

我不明白为什么我们必须为此示例webworker两次构建相同的图像。例如,请参阅:

# Django web server
web:
  build:
    context: .
    dockerfile: Dockerfile
  hostname: web
  command: ./run_web.sh
  volumes:
    - .:/app  # mount current directory inside container
  ports:
    - "8000:8000"
  # set up links so that web knows about db, rabbit and redis
  links:
    - db
    - rabbit
    - redis
  depends_on:
    - db

# Celery worker
worker:
  build:
    context: .
    dockerfile: Dockerfile
  command: ./run_celery.sh
  volumes:
    - .:/app
  links:
    - db
    - rabbit
    - redis
  depends_on:
    - rabbit

这是否意味着这个docker-compose.yml会创建两个彼此重复的容器?如果我只需要worker的芹菜工作者(为什么要设置两次Django?),似乎有点过分了。也许我误解了一些事情。感觉就像一个选项就是用command替换web中的./run_web.sh; ./run_celery.sh,并设置正确的链接。这样您就可以完全删除worker。 有人可以开导我吗?谢谢你的阅读。

0 个答案:

没有答案