From 03ee6c78d61d78e2e77e06376a14389856ef2b84 Mon Sep 17 00:00:00 2001 From: "Nikita P. Shupeyko" Date: Thu, 8 Mar 2018 18:10:38 +0300 Subject: [PATCH] Fix CELERY_BROKER_URL overriden in entrypoint.sh Closes #1235. --- hooks/post_gen_project.py | 7 +++++++ .../.envs/.local/.celery | 3 +++ .../.envs/.production/.celery | 3 +++ .../compose/production/django/entrypoint.sh | 5 ----- {{cookiecutter.project_slug}}/local.yml | 20 +++++++++++++++---- .../merge_production_dotenvs_in_dotenv.py | 3 +++ {{cookiecutter.project_slug}}/production.yml | 15 ++++++++------ 7 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/.envs/.local/.celery create mode 100644 {{cookiecutter.project_slug}}/.envs/.production/.celery diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index af813e7d..0cd1a541 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -249,6 +249,11 @@ def remove_envs_and_associated_files(): os.remove('merge_production_dotenvs_in_dotenv.py') +def remove_celery_envs(): + os.remove(os.path.join('.envs', '.local', '.celery')) + os.remove(os.path.join('.envs', '.production', '.celery')) + + def main(): postgres_user = generate_postgres_user() set_flags_in_envs(postgres_user) @@ -311,6 +316,8 @@ def main(): if '{{ cookiecutter.use_celery }}'.lower() == 'n': remove_celery_app() + if '{{ cookiecutter.use_docker }}'.lower() == 'y': + remove_celery_envs() if '{{ cookiecutter.use_travisci }}'.lower() == 'n': remove_dottravisyml_file() diff --git a/{{cookiecutter.project_slug}}/.envs/.local/.celery b/{{cookiecutter.project_slug}}/.envs/.local/.celery new file mode 100644 index 00000000..f779a430 --- /dev/null +++ b/{{cookiecutter.project_slug}}/.envs/.local/.celery @@ -0,0 +1,3 @@ +# Celery +# ------------------------------------------------------------------------------ +CELERY_BROKER_URL=redis://redis:6379/0 diff --git a/{{cookiecutter.project_slug}}/.envs/.production/.celery b/{{cookiecutter.project_slug}}/.envs/.production/.celery new file mode 100644 index 00000000..f779a430 --- /dev/null +++ b/{{cookiecutter.project_slug}}/.envs/.production/.celery @@ -0,0 +1,3 @@ +# Celery +# ------------------------------------------------------------------------------ +CELERY_BROKER_URL=redis://redis:6379/0 diff --git a/{{cookiecutter.project_slug}}/compose/production/django/entrypoint.sh b/{{cookiecutter.project_slug}}/compose/production/django/entrypoint.sh index b31581de..19d2ad7b 100644 --- a/{{cookiecutter.project_slug}}/compose/production/django/entrypoint.sh +++ b/{{cookiecutter.project_slug}}/compose/production/django/entrypoint.sh @@ -7,11 +7,6 @@ set -o nounset cmd="$@" -export REDIS_URL=redis://redis:6379 -{%- if cookiecutter.use_celery == 'y' %} -export CELERY_BROKER_URL="${REDIS_URL}/0" -{%- endif %} - if [ -z "${POSTGRES_USER}" ]; then # the official postgres image uses 'postgres' as default user if not set explictly. export POSTGRES_USER=postgres diff --git a/{{cookiecutter.project_slug}}/local.yml b/{{cookiecutter.project_slug}}/local.yml index 8376c4a5..8c0e2e89 100644 --- a/{{cookiecutter.project_slug}}/local.yml +++ b/{{cookiecutter.project_slug}}/local.yml @@ -11,7 +11,7 @@ services: dockerfile: ./compose/local/django/Dockerfile depends_on: - postgres - {% if cookiecutter.use_mailhog == 'y' -%} + {%- if cookiecutter.use_mailhog == 'y' %} - mailhog {%- endif %} volumes: @@ -19,6 +19,9 @@ services: env_file: - ./.envs/.local/.django - ./.envs/.local/.postgres + {%- if cookiecutter.use_celery == 'y' %} + - ./.envs/.local/.celery + {%- endif %} ports: - "8000:8000" command: /start.sh @@ -32,12 +35,16 @@ services: - postgres_backup_local:/backups env_file: - ./.envs/.local/.postgres - {% if cookiecutter.use_mailhog == 'y' %} + {%- if cookiecutter.use_mailhog == 'y' %} + mailhog: image: mailhog/mailhog:v1.0.0 ports: - "8025:8025" - {% endif %}{% if cookiecutter.use_celery == 'y' %} + + {%- endif %} + {%- if cookiecutter.use_celery == 'y' %} + redis: image: redis:3.0 @@ -49,6 +56,8 @@ services: {% if cookiecutter.use_mailhog == 'y' -%} - mailhog {%- endif %} + env_file: + - ./.envs/.local/.celery ports: [] command: /start-celeryworker.sh @@ -60,6 +69,9 @@ services: {% if cookiecutter.use_mailhog == 'y' -%} - mailhog {%- endif %} + env_file: + - ./.envs/.local/.celery ports: [] command: /start-celerybeat.sh - {% endif %} + + {%- endif %} diff --git a/{{cookiecutter.project_slug}}/merge_production_dotenvs_in_dotenv.py b/{{cookiecutter.project_slug}}/merge_production_dotenvs_in_dotenv.py index c1bfe30a..fe4560ad 100644 --- a/{{cookiecutter.project_slug}}/merge_production_dotenvs_in_dotenv.py +++ b/{{cookiecutter.project_slug}}/merge_production_dotenvs_in_dotenv.py @@ -8,6 +8,9 @@ PRODUCTION_DOTENVS_DIR_PATH = os.path.join(ROOT_DIR_PATH, '.envs', '.production' PRODUCTION_DOTENV_FILE_PATHS = [ os.path.join(PRODUCTION_DOTENVS_DIR_PATH, '.django'), os.path.join(PRODUCTION_DOTENVS_DIR_PATH, '.postgres'), + {%- if cookiecutter.use_celery == 'y' %} + os.path.join(PRODUCTION_DOTENVS_DIR_PATH, '.celery'), + {%- endif %} os.path.join(PRODUCTION_DOTENVS_DIR_PATH, '.caddy'), ] DOTENV_FILE_PATH = os.path.join(ROOT_DIR_PATH, '.env') diff --git a/{{cookiecutter.project_slug}}/production.yml b/{{cookiecutter.project_slug}}/production.yml index 469903d9..c2b6fccf 100644 --- a/{{cookiecutter.project_slug}}/production.yml +++ b/{{cookiecutter.project_slug}}/production.yml @@ -16,6 +16,9 @@ services: env_file: - ./.envs/.production/.django - ./.envs/.production/.postgres + {%- if cookiecutter.use_celery == 'y' %} + - ./.envs/.production/.celery + {%- endif %} command: /gunicorn.sh postgres: @@ -44,15 +47,15 @@ services: redis: image: redis:3.0 - {% if cookiecutter.use_celery == 'y' %} + {%- if cookiecutter.use_celery == 'y' %} + celeryworker: <<: *django depends_on: - postgres - redis env_file: - - ./.envs/.production/.django - - ./.envs/.production/.postgres + - ./.envs/.production/.celery command: /start-celeryworker.sh celerybeat: @@ -61,7 +64,7 @@ services: - postgres - redis env_file: - - ./.envs/.production/.django - - ./.envs/.production/.postgres + - ./.envs/.production/.celery command: /start-celerybeat.sh - {% endif %} + + {%- endif %}