From 1784884a8095a42a5ebfffdcd09cd711e48018df Mon Sep 17 00:00:00 2001 From: TheCapsLock Date: Thu, 8 Apr 2021 22:35:01 +0200 Subject: [PATCH] =?UTF-8?q?Docker:=20plusieurs=20am=C3=A9liorations=20(voi?= =?UTF-8?q?r=20d=C3=A9tails=20ci-dessous)=20(#57)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docker: using gunicorn * cleanup * Docker: many improvements, added docker-compose for development purpose * display "sesame" on docker logs * auto restart app container in case of crash * dev mode: allow user to work on source code and synchronize changes with source code in "app" service * dev mode: auto reload gunicorn workers on source code change dev mode and data persistance * Suppression log inutile Co-authored-by: CapsLock --- README.md | 6 +++++- copanier/emails.py | 2 +- docker/docker-compose-dev.yml | 6 ++++++ docker/docker-compose.yml | 6 +++++- 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 docker/docker-compose-dev.yml diff --git a/README.md b/README.md index 13dc308..e61d9a8 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,11 @@ cd docker sudo docker-compose -p copanier up ``` -The app will be available at http://localhost:2244 +The app will be available at http://localhost:2244. + +Database is saved under `db` folder. This folder is mounted in `app` container to persist data changes on host disk. + +For development purpose, you can use both `docker-compose.yml` and `docker-compose-dev.yml` which allows you to work on copanier source code and make gunicorn automatically reload workers when code changes. ## Run local server diff --git a/copanier/emails.py b/copanier/emails.py index 44d38bd..73f3091 100644 --- a/copanier/emails.py +++ b/copanier/emails.py @@ -16,7 +16,7 @@ def send(to, subject, body, html=None, copy=None, attachments=None): if not config.SEND_EMAILS: body = body.replace("https", "http") - return print("Sending email", str(body.encode('utf-8'))) + return print("Sending email", str(body.encode('utf-8')), flush=True) message.send( to=to, diff --git a/docker/docker-compose-dev.yml b/docker/docker-compose-dev.yml new file mode 100644 index 0000000..ae4eae3 --- /dev/null +++ b/docker/docker-compose-dev.yml @@ -0,0 +1,6 @@ +version: "3.9" +services: + app: + command: /srv/copanier-venv/bin/gunicorn -k roll.worker.Worker copanier:app --bind 0.0.0.0:2244 --reload --log-level debug --access-logfile - --error-logfile - + volumes: + - "../:/srv/copanier/" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index ddd0f8e..628e5dd 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -5,12 +5,16 @@ services: context: .. dockerfile: "./docker/Dockerfile" command: /srv/copanier-venv/bin/gunicorn -k roll.worker.Worker copanier:app --bind 0.0.0.0:2244 + volumes: + - "../copanier/db:/srv/copanier/db" # To persist database changes + restart: always static: image: "nginx:latest" volumes: - "../copanier/static:/srv/copanier_static/static:ro" - "./nginx-default.conf:/etc/nginx/conf.d/default.conf:ro" + restart: always depends_on: - app ports: - - 0.0.0.0:2244:80 \ No newline at end of file + - 0.0.0.0:2244:80