Сборка сельдерея контейнера в приложении Django - PullRequest
0 голосов
/ 25 апреля 2018

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

...