diff --git a/deployment/docker/standalone/Dockerfile b/deployment/docker/standalone/Dockerfile index 94bfb7b546..076dc17599 100644 --- a/deployment/docker/standalone/Dockerfile +++ b/deployment/docker/standalone/Dockerfile @@ -24,12 +24,8 @@ ADD gunicorn_starter.bash /gunicorn_starter.bash RUN git clone --recursive --depth 1 https://github.com/pretix/pretix.git /pretix WORKDIR /pretix/src -RUN pip3 install -r requirements.txt -RUN pip3 install -r requirements/mysql.txt -RUN pip3 install -r requirements/postgres.txt -RUN pip3 install -r requirements/memcached.txt -RUN pip3 install -r requirements/redis.txt -RUN pip3 install gunicorn +RUN pip3 install -r requirements.txt -r requirements/mysql.txt -r requirements/postgres.txt \ + -r requirements/memcached.txt -r requirements/celery.txt -r requirements/redis.txt gunicorn RUN make @@ -37,8 +33,10 @@ RUN mkdir /etc/pretix RUN mkdir /data VOLUME /etc/pretix -RUN chmod +x /gunicorn_starter.bash +ADD pretix.bash /usr/local/bin/pretix +RUN chmod +x /usr/local/bin/pretix EXPOSE 80 -CMD ["/gunicorn_starter.bash"] +ENTRYPOINT ["pretix"] +CMD ["web"] diff --git a/deployment/docker/standalone/gunicorn_starter.bash b/deployment/docker/standalone/gunicorn_starter.bash deleted file mode 100644 index 95c79d45ae..0000000000 --- a/deployment/docker/standalone/gunicorn_starter.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -cd /pretix/src -export DJANGO_SETTINGS_MODULE=pretix.settings -export DATA_DIR=/data/ -python3 manage.py migrate -python3 manage.py collectstatic --noinput -python3 manage.py compress -gunicorn \ - -b '0.0.0.0:80' \ - -w 3 --max-requests 1000 --max-requests-jitter 50 \ - pretix.wsgi diff --git a/deployment/docker/standalone/pretix.bash b/deployment/docker/standalone/pretix.bash new file mode 100644 index 0000000000..075b80dcae --- /dev/null +++ b/deployment/docker/standalone/pretix.bash @@ -0,0 +1,39 @@ +#!/bin/bash +cd /pretix/src +export DJANGO_SETTINGS_MODULE=pretix.settings +export DATA_DIR=/data/ +NUM_WORKERS=25 + +if [ ! -d /data/logs ]; then + mkdir /data/logs; +fi +if [ ! -d /data/media ]; then + mkdir /data/media; +fi + +if [ "$1" == "web" ]; then + python3 manage.py collectstatic --noinput + python3 manage.py compress + exec gunicorn pretix.wsgi \ + --name pretix \ + --workers $NUM_WORKERS \ + --max-requests 1200 \ + --max-requests-jitter 50 \ + --log-level=info \ + --bind=0.0.0.0:80 +fi + +if [ "$1" == "worker" ]; then + exec celery -A pretix worker -l info +fi + +if [ "$1" == "migrate" ]; then + exec python manage.py migrate --noinput +fi + +if [ "$1" == "shell" ]; then + exec python manage.py shell +fi + +echo "Specify argument: web|worker|migrate|shell" +exit 1