From 7de756586bba7a8de3639ec0075d80aab612ecb2 Mon Sep 17 00:00:00 2001 From: flashdrag Date: Tue, 14 Nov 2023 20:27:01 +0000 Subject: [PATCH] Deployment setup: Update Django settings to use environment variables --- README.md | 17 +++++++++++++++-- app/app/settings.py | 11 ++++++++--- commands.md | 4 ++++ docker-compose-deploy.yml | 3 +-- docker-compose.yml | 1 + 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d820e6a..4b14c78 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,8 @@ services: # command to run when the container starts command: > sh -c 'python manage.py runserver 0.0.0.0:8000' + environment: + - DEBUG=1 ``` - Build the docker image ```bash @@ -342,7 +344,6 @@ DATABASES = { 'USER': os.environ.get('DB_USER'), 'PASSWORD': os.environ.get('DB_PASS'), 'HOST': os.environ.get('DB_HOST'), - 'PORT': os.environ.get('DB_PORT'), } } ``` @@ -709,7 +710,6 @@ services: - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASS=${DB_PASS} - - DB_PORT=${DB_PORT} - SECRET_KEY=${DJANGO_SECRET_KEY} - ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} depends_on: @@ -738,3 +738,16 @@ volumes: postgres-data: static-data: ``` + +#### Update Django settings to use environment variables +``` +SECRET_KEY = os.environ.get('SECRET_KEY', 'changeme') +DEBUG = bool(int(os.environ.get('DEBUG', 0))) +ALLOWED_HOSTS = [] +ALLOWED_HOSTS.extend( + filter( + None, + os.environ.get('ALLOWED_HOSTS', '').split(','), + ) +) +``` diff --git a/app/app/settings.py b/app/app/settings.py index a7929ab..16a61a7 100644 --- a/app/app/settings.py +++ b/app/app/settings.py @@ -21,12 +21,18 @@ # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-m0mui7moly5t#jbn74mxr35o&c%ijo5s3xd7n5d$m^mun^kv$r' +SECRET_KEY = os.environ.get('SECRET_KEY', 'changeme') # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = bool(int(os.environ.get('DEBUG', 0))) ALLOWED_HOSTS = [] +ALLOWED_HOSTS.extend( + filter( + None, + os.environ.get('ALLOWED_HOSTS', '').split(','), + ) +) # Application definition @@ -89,7 +95,6 @@ 'USER': os.environ.get('DB_USER'), 'PASSWORD': os.environ.get('DB_PASS'), 'HOST': os.environ.get('DB_HOST'), - 'PORT': os.environ.get('DB_PORT'), } } diff --git a/commands.md b/commands.md index 57bf674..5195e64 100644 --- a/commands.md +++ b/commands.md @@ -43,6 +43,10 @@ $ docker volume ls ```bash $ docker volume rm ``` +- Down containers of specific docker-compose.yml file +```bash +$ docker compose -f down +``` ## Run commands inside the container - Using `docker compose run` command diff --git a/docker-compose-deploy.yml b/docker-compose-deploy.yml index a8ac5c8..7d3fcc4 100644 --- a/docker-compose-deploy.yml +++ b/docker-compose-deploy.yml @@ -12,7 +12,6 @@ services: - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASS=${DB_PASS} - - DB_PORT=${DB_PORT} - SECRET_KEY=${DJANGO_SECRET_KEY} - ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} depends_on: @@ -33,7 +32,7 @@ services: depends_on: - app ports: - - 80:8000 + - 8000:8000 volumes: - static-data:/vol/static diff --git a/docker-compose.yml b/docker-compose.yml index fc5189c..06bef52 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,6 +23,7 @@ services: - DB_NAME=devdb - DB_USER=devuser - DB_PASS=postgres + - DEBUG=1 db: image: postgres:13-alpine