From ea3d856a68d143f25609c92ccb25880b49267215 Mon Sep 17 00:00:00 2001 From: Krzysztof Szumny Date: Sun, 4 Mar 2018 08:53:05 +0100 Subject: [PATCH] cron for production --- chroniker_crontab | 2 -- compose/django/Dockerfile | 11 ++++++++--- compose/django/Dockerfile-dev | 8 -------- compose/django/configure_and_run_cron.sh | 10 ++++++++++ compose/django/cron.sh | 9 ++++----- compose/django/start-cron-dev.sh | 3 --- compose/django/start.sh | 1 - dev.yml | 19 ------------------- docker-compose.yml | 13 +++++++++++++ fabfile.py | 1 + requirements.txt | 1 + 11 files changed, 37 insertions(+), 41 deletions(-) delete mode 100644 chroniker_crontab create mode 100644 compose/django/configure_and_run_cron.sh delete mode 100644 compose/django/start-cron-dev.sh diff --git a/chroniker_crontab b/chroniker_crontab deleted file mode 100644 index 6792a1e..0000000 --- a/chroniker_crontab +++ /dev/null @@ -1,2 +0,0 @@ -* * * * * python /app/manage.py cron - diff --git a/compose/django/Dockerfile b/compose/django/Dockerfile index b3cf26a..e9977e4 100644 --- a/compose/django/Dockerfile +++ b/compose/django/Dockerfile @@ -19,7 +19,7 @@ RUN pip install -r /requirements.txt \ && useradd -m -r -g django django RUN apt-get install -y ruby-dev rubygems -RUN apt-get install -y cron +RUN apt-get install -y cron rsyslog RUN gem install sass @@ -35,8 +35,13 @@ RUN sed -i 's/\r//' /start.sh \ && chmod +x /start.sh \ && chown django /start.sh -ADD chroniker_crontab /etc/cron.d/chroniker-cron -RUN chmod 0644 /etc/cron.d/chroniker-cron +COPY ./compose/django/configure_and_run_cron.sh /configure_and_run_cron.sh +RUN chmod +x /configure_and_run_cron.sh \ + && chown django /configure_and_run_cron.sh + +COPY ./compose/django/cron.sh /cron.sh +RUN chmod +x /cron.sh \ + && chown django /cron.sh WORKDIR /app diff --git a/compose/django/Dockerfile-dev b/compose/django/Dockerfile-dev index 5a50b2d..108a6ce 100644 --- a/compose/django/Dockerfile-dev +++ b/compose/django/Dockerfile-dev @@ -17,8 +17,6 @@ RUN pip install steem RUN pip install -r /requirements.txt RUN apt-get install -y ruby-dev rubygems -RUN apt-get install -y cron - RUN gem install sass COPY ./compose/django/entrypoint.sh /entrypoint.sh @@ -29,12 +27,6 @@ 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/start-cron-dev.sh /start-cron-dev.sh -RUN chmod +x /start-cron-dev.sh - -COPY ./compose/django/cron.sh /cron.sh -RUN chmod +x /cron.sh - WORKDIR /app ENTRYPOINT ["/entrypoint.sh"] diff --git a/compose/django/configure_and_run_cron.sh b/compose/django/configure_and_run_cron.sh new file mode 100644 index 0000000..613995a --- /dev/null +++ b/compose/django/configure_and_run_cron.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +dotenv list > /tmp/env +sed -i 's/^/export /' /tmp/env + +echo "* * * * * django /cron.sh" > /etc/cron.d/django + +rsyslogd +cron +tail -f /var/log/syslog diff --git a/compose/django/cron.sh b/compose/django/cron.sh index 3135e6b..a990ef3 100644 --- a/compose/django/cron.sh +++ b/compose/django/cron.sh @@ -1,6 +1,5 @@ -set -a -. /app/.env.local -set +a +#!/bin/bash -/usr/local/bin/chroniker -p /app/ -s settings.test -#python /app/manage.py cron +source /etc/profile +source /tmp/env +/entrypoint.sh python /app/manage.py cron >> /app/cron-logs 2>&1 diff --git a/compose/django/start-cron-dev.sh b/compose/django/start-cron-dev.sh deleted file mode 100644 index 77f5885..0000000 --- a/compose/django/start-cron-dev.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -echo '* * * * * root /cron.sh >> /var/log/cron.log 2>&1' > /etc/cron.d/manage-py-cron -cron -f diff --git a/compose/django/start.sh b/compose/django/start.sh index 13da57b..1f74677 100644 --- a/compose/django/start.sh +++ b/compose/django/start.sh @@ -1,7 +1,6 @@ #!/bin/sh ./bin/apply_theme.sh sass --update --force static/scss:static/css -cron -f& python manage.py migrate python /app/manage.py collectstatic --noinput /usr/local/bin/uwsgi --http :5000 \ diff --git a/dev.yml b/dev.yml index 8758fec..ce29a47 100644 --- a/dev.yml +++ b/dev.yml @@ -30,22 +30,3 @@ services: - postgres env_file: - .env.local - - django-chroniker: - build: - context: . - dockerfile: ./compose/django/Dockerfile-dev - command: /start-cron-dev.sh - depends_on: - - postgres - - redis - - django - volumes: - - .:/app - links: - - postgres - env_file: - - .env.local - - redis: - build: ./compose/redis diff --git a/docker-compose.yml b/docker-compose.yml index 1fc07e2..3f277ba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,5 +46,18 @@ services: command: /start.sh env_file: .env + django-chroniker: + build: + context: . + dockerfile: ./compose/django/Dockerfile + command: /configure_and_run_cron.sh + depends_on: + - postgres + - redis + links: + - postgres + env_file: + - .env + redis: build: ./compose/redis diff --git a/fabfile.py b/fabfile.py index 62fc632..0b5a201 100644 --- a/fabfile.py +++ b/fabfile.py @@ -123,6 +123,7 @@ def deploy(branch="master"): time.sleep(10) _build_and_restart("django-b") + _build_and_restart("django-chroniker") docker_compose("run django-a python manage.py searchv2_build") diff --git a/requirements.txt b/requirements.txt index 4f3ab7f..63a3493 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,6 +35,7 @@ whitenoise==3.2.2 Pillow==4.2.1 rocketchat-API==0.6.3 markdown==2.6.11 +python-dotenv==0.8.0 # Redis support django-redis==4.6.0