From 527221045303e4d421ac616b12bf20dc56464091 Mon Sep 17 00:00:00 2001 From: "Nikita P. Shupeyko" Date: Sun, 10 Jun 2018 23:49:54 +0300 Subject: [PATCH] Introduce production flower service --- hooks/post_gen_project.py | 22 +++++++++---------- .../.envs/.production/.django | 7 ++++++ .../compose/production/django/Dockerfile | 4 ++++ .../production/django/celery/flower/start | 10 +++++++++ {{cookiecutter.project_slug}}/production.yml | 7 ++++++ 5 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/compose/production/django/celery/flower/start diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index a63b64a16..9118f6c93 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -223,23 +223,23 @@ def set_flags_in_envs( celery_flower_user, debug=False, ): - password = DEBUG_VALUE if debug else None - local_django_envs_path = os.path.join(".envs", ".local", ".django") - set_celery_flower_user(local_django_envs_path, value=celery_flower_user) - set_celery_flower_password(local_django_envs_path, value=password) - - local_postgres_envs_path = os.path.join(".envs", ".local", ".postgres") - set_postgres_user(local_postgres_envs_path, value=postgres_user) - set_postgres_password(local_postgres_envs_path, value=password) - production_django_envs_path = os.path.join(".envs", ".production", ".django") + local_postgres_envs_path = os.path.join(".envs", ".local", ".postgres") + production_postgres_envs_path = os.path.join(".envs", ".production", ".postgres") + set_django_secret_key(production_django_envs_path) set_django_admin_url(production_django_envs_path) - production_postgres_envs_path = os.path.join(".envs", ".production", ".postgres") + set_postgres_user(local_postgres_envs_path, value=postgres_user) + set_postgres_password(local_postgres_envs_path, value=DEBUG_VALUE if debug else None) set_postgres_user(production_postgres_envs_path, value=postgres_user) - set_postgres_password(production_postgres_envs_path, value=password) + set_postgres_password(production_postgres_envs_path, value=DEBUG_VALUE if debug else None) + + set_celery_flower_user(local_django_envs_path, value=celery_flower_user) + set_celery_flower_password(local_django_envs_path, value=DEBUG_VALUE if debug else None) + set_celery_flower_user(production_django_envs_path, value=celery_flower_user) + set_celery_flower_password(production_django_envs_path, value=DEBUG_VALUE if debug else None) def set_flags_in_settings_files(): diff --git a/{{cookiecutter.project_slug}}/.envs/.production/.django b/{{cookiecutter.project_slug}}/.envs/.production/.django index 5cb90897b..b6004e432 100644 --- a/{{cookiecutter.project_slug}}/.envs/.production/.django +++ b/{{cookiecutter.project_slug}}/.envs/.production/.django @@ -43,3 +43,10 @@ SENTRY_DSN= # Redis # ------------------------------------------------------------------------------ REDIS_URL=redis://redis:6379/0 +{% if cookiecutter.use_celery == 'y' %} +# Celery +# ------------------------------------------------------------------------------ +# Flower +CELERY_FLOWER_USER=!!!SET CELERY_FLOWER_USER!!! +CELERY_FLOWER_PASSWORD=!!!SET CELERY_FLOWER_PASSWORD!!! +{% endif %} diff --git a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile index b204a4810..68d72327f 100644 --- a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile +++ b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile @@ -38,6 +38,10 @@ COPY ./compose/production/django/celery/beat/start /start-celerybeat RUN sed -i 's/\r//' /start-celerybeat RUN chmod +x /start-celerybeat RUN chown django /start-celerybeat + +COPY ./compose/production/django/celery/flower/start /start-flower +RUN sed -i 's/\r//' /start-flower +RUN chmod +x /start-flower {% endif %} COPY . /app diff --git a/{{cookiecutter.project_slug}}/compose/production/django/celery/flower/start b/{{cookiecutter.project_slug}}/compose/production/django/celery/flower/start new file mode 100644 index 000000000..f0abae7ef --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/production/django/celery/flower/start @@ -0,0 +1,10 @@ +#!/bin/sh + +set -o errexit +set -o nounset + + +celery flower \ + --app={{cookiecutter.project_slug}}.taskapp \ + --broker="${CELERY_BROKER_URL}" \ + --basic_auth="${CELERY_FLOWER_USER}:${CELERY_FLOWER_PASSWORD}" diff --git a/{{cookiecutter.project_slug}}/production.yml b/{{cookiecutter.project_slug}}/production.yml index 4ee178d82..9415db618 100644 --- a/{{cookiecutter.project_slug}}/production.yml +++ b/{{cookiecutter.project_slug}}/production.yml @@ -59,4 +59,11 @@ services: image: {{ cookiecutter.project_slug }}_production_celerybeat command: /start-celerybeat + flower: + <<: *django + image: {{ cookiecutter.project_slug }}_production_flower + ports: + - "5555:5555" + command: /start-flower + {%- endif %}