From f7e0cd88e1179357e8506f99f3fe10a180545d60 Mon Sep 17 00:00:00 2001 From: "Nikita P. Shupeyko" Date: Sun, 30 Jul 2017 16:14:32 +0300 Subject: [PATCH] Introduce development-time Celery services Closes #1225. --- .../compose/django/Dockerfile-dev | 8 +++ .../compose/django/celery/beat/start-dev.sh | 8 +++ .../compose/django/celery/worker/start-dev.sh | 7 +++ {{cookiecutter.project_slug}}/local.yml | 55 +++++++++++++------ 4 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh create mode 100644 {{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh diff --git a/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev b/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev index 673a06400..d2c56532a 100644 --- a/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev +++ b/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev @@ -13,6 +13,14 @@ COPY ./compose/django/start-dev.sh /start-dev.sh RUN sed -i 's/\r//' /start-dev.sh RUN chmod +x /start-dev.sh +COPY ./compose/django/celery/worker/start-dev.sh /start-celeryworker-dev.sh +RUN sed -i 's/\r//' /start-celeryworker-dev.sh +RUN chmod +x /start-celeryworker-dev.sh + +COPY ./compose/django/celery/beat/start-dev.sh /start-celerybeat-dev.sh +RUN sed -i 's/\r//' /start-celerybeat-dev.sh +RUN chmod +x /start-celerybeat-dev.sh + WORKDIR /app ENTRYPOINT ["/entrypoint.sh"] diff --git a/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh b/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh new file mode 100644 index 000000000..987d7259e --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -o errexit +set -o nounset +set -o xtrace + +rm -f './celerybeat.pid' +celery -A {{cookiecutter.project_slug}}.taskapp beat -l INFO diff --git a/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh b/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh new file mode 100644 index 000000000..594065e6c --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -o errexit +set -o nounset +set -o xtrace + +celery -A {{cookiecutter.project_slug}}.taskapp worker -l INFO diff --git a/{{cookiecutter.project_slug}}/local.yml b/{{cookiecutter.project_slug}}/local.yml index dbd321c82..bbd076f34 100644 --- a/{{cookiecutter.project_slug}}/local.yml +++ b/{{cookiecutter.project_slug}}/local.yml @@ -5,6 +5,22 @@ volumes: postgres_backup_dev: {} services: + django: + build: + context: . + dockerfile: ./compose/django/Dockerfile-dev + depends_on: + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + volumes: + - .:/app + environment: + - POSTGRES_USER={{cookiecutter.project_slug}} + - USE_DOCKER=yes + ports: + - "8000:8000" + command: /start-dev.sh + postgres: build: ./compose/postgres volumes: @@ -13,22 +29,6 @@ services: environment: - POSTGRES_USER={{cookiecutter.project_slug}} - django: - build: - context: . - dockerfile: ./compose/django/Dockerfile-dev - command: /start-dev.sh - depends_on: - - postgres{% if cookiecutter.use_mailhog == 'y' %} - - mailhog{% endif %} - environment: - - POSTGRES_USER={{cookiecutter.project_slug}} - - USE_DOCKER=yes - volumes: - - .:/app - ports: - - "8000:8000" - {% if cookiecutter.use_pycharm == 'y' %} pycharm: build: @@ -48,3 +48,26 @@ services: ports: - "8025:8025" {% endif %} + +{% if cookiecutter.use_celery == 'y' -%} + redis: + image: redis:3.0 + + celeryworker: + extends: + service: django + depends_on: + - redis + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + command: /start-celeryworker-dev.sh + + celerybeat: + extends: + service: django + depends_on: + - redis + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + command: /start-celerybeat-dev.sh +{%- endif %}