30 lines
1 KiB
Text
30 lines
1 KiB
Text
|
|
# 1. Verwende das offizielle Python 3.8.18 Image auf minimaler Debian-Basis
|
||
|
|
FROM python:3.8.18-slim
|
||
|
|
|
||
|
|
# 2. Setze Umgebungsvariablen für Python
|
||
|
|
# Verhindert, dass Python .pyc-Dateien schreibt
|
||
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||
|
|
# Verhindert, dass Python Ausgaben puffert (wichtig für Echtzeit-Docker-Logs)
|
||
|
|
ENV PYTHONUNBUFFERED=1
|
||
|
|
|
||
|
|
# 3. Setze das Arbeitsverzeichnis im Container
|
||
|
|
WORKDIR /code
|
||
|
|
|
||
|
|
# 4. Installiere System-Abhängigkeiten
|
||
|
|
# gcc und libpq-dev werden für PostgreSQL (psycopg2) und einige Python-Pakete benötigt
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
|
|
gcc \
|
||
|
|
libpq-dev \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# 5. Installiere die Python-Abhängigkeiten
|
||
|
|
# Zuerst requirements.txt kopieren, um den Docker-Cache optimal zu nutzen
|
||
|
|
COPY requirements.txt /code/
|
||
|
|
RUN pip install --upgrade pip && pip install -r requirements.txt
|
||
|
|
|
||
|
|
# 6. Kopiere den restlichen Django-Quellcode in den Container
|
||
|
|
COPY . /code/
|
||
|
|
|
||
|
|
# 7. Erstelle die Ordner für statische Medien (wichtig für die Caddy-Anbindung)
|
||
|
|
RUN mkdir -p /code/staticfiles /code/mediafiles
|