From 43b6a2cdf259fb581d7aa904213cfbde42b164ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Pi=C3=A9tri?= Date: Wed, 17 Feb 2021 14:06:07 +0100 Subject: [PATCH] feat: :sparkles: Add dev docker support Dockerfile and docker-compose files are now included in directory. They start a db, migrate, create a superuser if it doesn't already exists and start the server --- Dockerfile | 12 ++++ docker-compose.yml | 31 +++++++++ docker/docker-entrypoint.sh | 20 ++++++ docker/settings_local.template.py | 101 ++++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100755 docker/docker-entrypoint.sh create mode 100644 docker/settings_local.template.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b270e9a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM python:3 +ENV PYTHONUNBUFFERED=1 +RUN apt-get update && apt-get install -y --no-install-recommends gettext-base libpq-dev +WORKDIR /code +COPY requirements.txt /code/ +COPY postgresql-requirements.txt /code/ +COPY dev-requirements.txt /code/ +RUN pip install -r requirements.txt +RUN pip install -r postgresql-requirements.txt +RUN pip install -r dev-requirements.txt +COPY . /code/ +CMD ./docker/docker-entrypoint.sh \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..f9ea6440 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3" + +volumes: + database_data: + driver: local + +services: + db: + image: postgres:latest + volumes: + - database_data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + + re2o: + build: . + volumes: + - .:/code + ports: + - "8000:8000" + depends_on: + - db + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - SUPERUSER_LOGIN=admin + - SUPERUSER_PASS=admin + - SUPERUSER_EMAIL=admin@example.net \ No newline at end of file diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh new file mode 100755 index 00000000..150950d0 --- /dev/null +++ b/docker/docker-entrypoint.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +cat docker/settings_local.template.py | envsubst > re2o/settings_local.py + +AUTOMIGRATE=${AUTOMIGRATE:-yes} + +if [ "$AUTOMIGRATE" != "skip" ]; then + python3 manage.py migrate --noinput +fi + +cat <