diff options
| author | 0livd <github@destras.fr> | 2018-02-07 09:37:21 +0100 |
|---|---|---|
| committer | Alexis Metaireau <alexis@notmyidea.org> | 2018-02-07 09:37:21 +0100 |
| commit | d9471733f82f948e4e77ac91d6280fa5c4856358 (patch) | |
| tree | 13f6e8c7703759f38f7f9d39fcec3100f9fb11f5 | |
| parent | 667e555d6726f1e27e8e5cdcfb79981b413571e9 (diff) | |
| download | ihatemoney-mirror-d9471733f82f948e4e77ac91d6280fa5c4856358.zip ihatemoney-mirror-d9471733f82f948e4e77ac91d6280fa5c4856358.tar.gz ihatemoney-mirror-d9471733f82f948e4e77ac91d6280fa5c4856358.tar.bz2 | |
Fix some anti patterns in docker deployment (#321)
- Use exec to run gunicorn and avoid creating a new process.
- Add the possibility to pass any additional parameters to
gunicorn.
- Use only one gunicorn worker by default as the usual way to
scale the app in production would be to use the scale command
of the cluster scheduler. Additional workers could still be
added by passing the "-w" gunicorn parameter to docker run.
| -rw-r--r-- | Dockerfile | 5 | ||||
| -rwxr-xr-x | conf/confandrun.sh | 9 | ||||
| -rw-r--r-- | docs/installation.rst | 5 |
3 files changed, 10 insertions, 9 deletions
@@ -26,9 +26,8 @@ ENV DEBUG="False" \ ACTIVATE_DEMO_PROJECT="True" \ ADMIN_PASSWORD="" \ ALLOW_PUBLIC_PROJECT_CREATION="True" \ - ACTIVATE_ADMIN_DASHBOARD="False" \ - GUNICORN_NUM_WORKERS="3" + ACTIVATE_ADMIN_DASHBOARD="False" VOLUME /database EXPOSE 8000 -CMD ["/ihatemoney/conf/confandrun.sh"] +ENTRYPOINT ["/ihatemoney/conf/confandrun.sh"] diff --git a/conf/confandrun.sh b/conf/confandrun.sh index e76a8e8..e37a573 100755 --- a/conf/confandrun.sh +++ b/conf/confandrun.sh @@ -17,7 +17,8 @@ ADMIN_PASSWORD = "$ADMIN_PASSWORD" ALLOW_PUBLIC_PROJECT_CREATION = $ALLOW_PUBLIC_PROJECT_CREATION ACTIVATE_ADMIN_DASHBOARD = $ACTIVATE_ADMIN_DASHBOARD EOF -gunicorn ihatemoney.wsgi:application \ --b 0.0.0.0:8000 \ ---log-syslog \ --w "$GUNICORN_NUM_WORKERS" +# Start gunicorn without forking +exec gunicorn ihatemoney.wsgi:application \ + -b 0.0.0.0:8000 \ + --log-syslog \ + "$@" diff --git a/docs/installation.rst b/docs/installation.rst index 0c3cfac..e7d586e 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -154,9 +154,10 @@ A volume can also be specified to persist the default database file:: docker run -d -p 8000:8000 -v /host/path/to/database:/database ihatemoney -The following gunicorn parameters are also available:: +Additional gunicorn parameters can be passed using the docker ``CMD`` parameter. +For example, use the following command to add more gunicorn workers:: - GUNICORN_NUM_WORKERS (default: 3) + docker run -d -p 8000:8000 ihatemoney -w 3 Configuration ============= |
