Развивается с сельдереем и докером - PullRequest
0 голосов
/ 20 июня 2019

Я заметил, что разработка с сельдереем в контейнере, что-то вроде этого:

  celeryworker:
    build: .
    user: django
    command: celery -A project.celery worker -Q project -l DEBUG
    links:
     - redis
     - postgres
    depends_on:
      - redis
      - postgres
    env_file: .env
    environment:
      DJANGO_SETTINGS_MODULE: config.settings.celery

, если я хочу внести некоторые изменения в какую-то задачу сельдерея, мне нужно полностью перестроить образ докера, чтобы иметьпоследние изменения.

Итак, я попытался:

docker-compose -f celery.yml down
docker-compose -f celery.yml up

Ничего не изменилось, тогда:

docker-compose -f celery.yml down
docker-compsoe -f celery.yml build
docker-compose -f celery.yml up

У меня есть новые изменения.

Естьэто способ сделать это?мне кажется, очень медленно, все время перестраивая образ, лучше ли иметь местные докеры-контейнеры из сельдерея?

1 Ответ

1 голос
/ 20 июня 2019

Смонтируйте . (т. Е. Вашу рабочую копию) как том внутри контейнера, в котором вы разрабатываете.

Таким образом, вы используете свежий код из вашего рабочего каталога без необходимостиперестроить (если, скажем, вы не меняете зависимости или что-то еще, что требует перестроения).

Идея объяснена здесь Heroku , выделено мое:

version: '2'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    env_file: .env
    depends_on:
      - db
    volumes:
      - ./webapp:/opt/webapp  # <--- Whatever code your Celery workers need should be here
  db:
    image: postgres:latest
    ports:
      - "5432:5432"
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
...