diff options
author | Matthew Lemon <y@yulqen.org> | 2024-05-23 14:01:57 +0100 |
---|---|---|
committer | Matthew Lemon <y@yulqen.org> | 2024-05-23 14:01:57 +0100 |
commit | 84cdaedf5cbde6a60e2840ab35fcccf8106bd0f2 (patch) | |
tree | 7d650e6e53c31f5f69cc20932cf8e24144c11a1f | |
parent | 5f5a3de40a8d2fa9c6067c2b0fa567ff11419e80 (diff) |
Local Docker environment is now runnable with make
-rw-r--r-- | Dockerfile | 18 | ||||
-rw-r--r-- | Dockerfile_postgresql | 6 | ||||
-rw-r--r-- | Makefile | 22 | ||||
-rw-r--r-- | conf/settings/local.py | 12 | ||||
-rwxr-xr-x | manage.py | 1 | ||||
-rw-r--r-- | requirements.txt | 1 |
6 files changed, 42 insertions, 18 deletions
@@ -1,5 +1,5 @@ # Builder stage -FROM registry.access.redhat.com/ubi9/python-311:1-52.1712567218 AS builder +FROM registry.access.redhat.com/ubi9/python-311:1-52.1712567218 AS builder # Add application sources USER 0 @@ -26,23 +26,13 @@ WORKDIR /app # Copy from builder COPY --from=builder /app /app +RUN apt update && apt install -y --no-install-recommends libpq-dev build-essential + # Install packages RUN pip install -r requirements.txt -# Copy across db file and set permissions -COPY db.sqlite3 /app/db.sqlite3 -RUN chown 1001:0 /app && \ - chmod 664 /app/db.sqlite3 - -# Set user -USER 1001 - -ENV DJANGO_SETTINGS_MODULE=conf.settings.base - -# Migrate database -RUN python manage.py migrate +ENV DJANGO_SETTINGS_MODULE=conf.settings.local -# Expose port EXPOSE 8000 # Start app diff --git a/Dockerfile_postgresql b/Dockerfile_postgresql new file mode 100644 index 0000000..9111660 --- /dev/null +++ b/Dockerfile_postgresql @@ -0,0 +1,6 @@ +FROM registry.redhat.io/rhel9/postgresql-16 + +ENV POSTGRESQL_USER=postgres \ + POSTGRESQL_PASSWORD=postgres + +CMD ["/usr/bin/run-postgresql"] @@ -1,12 +1,26 @@ +all: stop create-network build-postgres run-postgres build-django run-django migrate-and-superuser + +CONFIG := conf.settings.local + runserver: python manage.py runserver 0.0.0.0:8000 -runserver-docker: - docker run -it --name ded -d --rm -p 8000:8000 ded:latest +create-network: + -docker network create dednetwork +stop: + -docker stop ded-web postgres runserver-docker-with-vol: docker run -it --name ded -d --rm -p 8000:8000 -v $(PWD):/app ded:latest sync: git pull && git checkout main && git pull && git merge pyswitch && git checkout pyswitch && git rebase main && git push -build: - docker build -t ded:latest . +build-django: + docker build -f Dockerfile -t ded-web:latest . +build-postgres: + docker build -t dso-quay-registry-quay-quay-enterprise.apps.ocp1.azure.dso.digital.mod.uk/defnucsyr-dev-team-a/postgresql:v1.0.0 . -f Dockerfile_postgresql +run-postgres: + docker run -it --name postgres -d --rm -e POSTGRESQL_PASSWORD=ded -e POSTGRESQL_USER=ded -e POSTGRESQL_DATABASE=ded -p 5432:5432 --network dednetwork dso-quay-registry-quay-quay-enterprise.apps.ocp1.azure.dso.digital.mod.uk/defnucsyr-dev-team-a/postgresql:v1.0.0 +run-django: + docker run -it --name ded-web -d -e DJANGO_SETTINGS_MODULE=$(CONFIG) -p 8000:8000 --network dednetwork --rm ded-web:latest test: python manage.py test +migrate-and-superuser: + docker exec -it ded-web sh -c "python manage.py migrate && python manage.py createsuperuser" diff --git a/conf/settings/local.py b/conf/settings/local.py new file mode 100644 index 0000000..0992726 --- /dev/null +++ b/conf/settings/local.py @@ -0,0 +1,12 @@ +from .base import * + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": "ded", + "USER": "ded", + "PASSWORD": "ded", + "HOST": "postgres", + "PORT": 5432, + } +} @@ -1,5 +1,6 @@ #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" + import os import sys diff --git a/requirements.txt b/requirements.txt index f3dae6d..9d62c5a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ django-crispy-forms #faker>=13.14.0,<14.0.0 django-htmx==1.17.3 gunicorn==22.0.0 +psycopg2==2.9.9 |