Я хочу узнать, как настроить приложение Django с помощью Celery. Я использую следующий ресурс .
Я не понимаю, почему мы должны создать один и тот же образ дважды для 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
в целом.
Может ли кто-нибудь просветить меня? Спасибо за чтение.