summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Dockerfile36
-rw-r--r--Makefile4
2 files changed, 28 insertions, 12 deletions
diff --git a/Dockerfile b/Dockerfile
index dca00bd..bba15d4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,23 +1,39 @@
+# Builder stage
+FROM registry.access.redhat.com/ubi9/python-311:1-52.1712567218 AS builder
+
+# Add application sources
+USER 0
+COPY . /app
+RUN mkdir -p /app/static/css /app/static/js /app/static/img
+RUN chown -R 1001:0 /app
+USER 1001
+
+WORKDIR /app
+
+ENV DJANGO_SETTINGS_MODULE=conf.settings.base
+
+# Install dependencies
+RUN pip install -U "pip>=24.0.0" && \
+ pip install -r requirements.txt && \
+ python manage.py collectstatic --noinput
+
+# Final stage
FROM python:3.11-slim
# Set working directory
WORKDIR /app
-# Copy application code
-COPY . /app
+# Copy from builder
+COPY --from=builder /app /app
-# Install system dependencies
-RUN apt-get update && apt-get install -y \
- libpq-dev \
- gcc \
- && rm -rf /var/lib/apt/lists/*
+RUN apt update && apt install -y --no-install-recommends libpq-dev build-essential
-# Install Python dependencies
-RUN pip install --no-cache-dir -r requirements.txt
+# Install packages
+RUN pip install -r requirements.txt
ENV DJANGO_SETTINGS_MODULE=conf.settings.local
EXPOSE 8000
-# Start gunicorn
+# Start app
CMD ["gunicorn", "ded.wsgi:application", "--bind", "0.0.0.0:8000"]
diff --git a/Makefile b/Makefile
index 795701d..e0ebf25 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-all: stop create-network build-postgres run-postgres build-django run-django
+all: stop create-network build-postgres run-postgres build-django run-django migrate-and-superuser
CONFIG := conf.settings.local
@@ -19,7 +19,7 @@ build-postgres:
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 -d -it --name ded-web -e DJANGO_SETTINGS_MODULE=$(CONFIG) -p 8000:8000 --network dednetwork --rm ded-web:latest
+ 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: