From 45c7e0a38c5e0dac2538bfe5fb3253fdaeece534 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Mon, 21 Nov 2022 17:15:00 -0700 Subject: Rework dockerfile and compose to separate migrations --- Makefile | 3 +++ docker/Dockerfile | 2 +- docker/docker-compose.yml | 58 +++++++++++++++++++++++++++-------------------- docker/start.sh | 5 ---- 4 files changed, 37 insertions(+), 31 deletions(-) delete mode 100644 docker/start.sh diff --git a/Makefile b/Makefile index c38f867..e75c845 100644 --- a/Makefile +++ b/Makefile @@ -5,3 +5,6 @@ image: docs: cd docs/ && make html + +compose_up: + docker-compose -f docker/docker-compose.yml up diff --git a/docker/Dockerfile b/docker/Dockerfile index 7bc9935..9235bba 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,4 +19,4 @@ EXPOSE 8000 # Set some sensible defaults ENV GUNICORN_CMD_ARGS="--workers 8" -CMD ["sh", "/takahe/docker/start.sh"] +CMD ["gunicorn", "takahe.wsgi:application", "-b", "0.0.0.0:8000"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 2e6620a..71c01e6 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,28 @@ -version: "3" +version: "3.4" + +x-takahe-common: + &takahe-common + build: . + image: takahe:latest + environment: + DJANGO_SETTINGS_MODULE: takahe.settings.production + PGHOST: db + PGDATABASE: takahe + PGUSER: postgres + PGPASSWORD: insecure_password + TAKAHE_SECRET_KEY: insecure_secret + TAKAHE_MAIN_DOMAIN: example.com + TAKAHE_EMAIL_CONSOLE_ONLY: "true" + TAKAHE_MEDIA_BACKEND: local + TAKAHE_AUTO_ADMIN_EMAIL: admin@example.com + networks: + - external_network + - internal_network + restart: on-failure + depends_on: + - db + volumes: + - ..:/takahe/ services: db: @@ -11,34 +35,18 @@ services: - internal_network restart: always environment: - - "POSTGRES_DB=takahe" - - "POSTGRES_USER=postgres" - - "POSTGRES_PASSWORD=insecure_password" + POSTGRES_DB: takahe + POSTGRES_USER: postgres + POSTGRES_PASSWORD: insecure_password web: - build: . - image: takahe:latest - environment: - - "DJANGO_SETTINGS_MODULE=takahe.settings.production" - - "PGHOST=db" - - "PGDATABASE=takahe" - - "PGUSER=postgres" - - "PGPASSWORD=insecure_password" - - "TAKAHE_SECRET_KEY=insecure_secret" - - "TAKAHE_MAIN_DOMAIN=example.com" - - "TAKAHE_EMAIL_CONSOLE_ONLY=True" - - "TAKAHE_MEDIA_BACKEND=local" - - "TAKAHE_AUTO_ADMIN_EMAIL=admin@example.com" - networks: - - external_network - - internal_network - restart: always - depends_on: - - db + <<: *takahe-common ports: - "8000:8000" - volumes: - - ../:/takahe/ + + setup: + <<: *takahe-common + command: ["/takahe/manage.py", "migrate"] networks: internal_network: diff --git a/docker/start.sh b/docker/start.sh deleted file mode 100644 index d7dd3fd..0000000 --- a/docker/start.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -python3 manage.py migrate - -exec gunicorn takahe.wsgi:application -b 0.0.0.0:8000 -- cgit v1.2.3