我想学习如何使用Celery设置Django应用程序。我使用以下resource。
我不明白为什么我们必须为此示例web
和worker
两次构建相同的图像。例如,请参阅:
# 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
。
有人可以开导我吗?谢谢你的阅读。