# 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 RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ sed -i '/stretch-updates/d' /etc/apt/sources.list && \ apt-get update && apt-get install -y --no-install-recommends \ gcc \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # 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