multiple corrections on docker-compose and Dockerfile

robust start sequence
avoid scrolling of main content
This commit is contained in:
2025-08-31 07:30:53 +00:00
parent 2ca5f0060e
commit 4e74f72c9f
11 changed files with 211 additions and 118 deletions

View File

@@ -1,16 +1,33 @@
# server/Dockerfile
# Produktions-Dockerfile für die Flask-API mit Gunicorn
# 🔧 OPTIMIERT: Multi-Stage-Build für ein minimales und sicheres Produktions-Image
# --- Basisimage ---
# Stage 1: Builder - Installiert Abhängigkeiten
FROM python:3.13-slim AS builder
WORKDIR /app
# Installiert nur die für den Build notwendigen Systemabhängigkeiten
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libmariadb-dev-compat libmariadb-dev gcc \
&& rm -rf /var/lib/apt/lists/*
# Kopiert nur die requirements.txt, um den Docker-Cache optimal zu nutzen
COPY requirements.txt .
# Installiert die Python-Pakete in ein separates Verzeichnis
RUN pip install --no-cache-dir --prefix="/install" -r requirements.txt
# Stage 2: Final - Das eigentliche Produktions-Image
FROM python:3.13-slim
# --- Arbeitsverzeichnis ---
WORKDIR /app
# --- Systemabhängigkeiten für MariaDB-Client & Locale ---
# Installiert nur die für die Laufzeit notwendigen Systemabhängigkeiten
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libmariadb-dev-compat libmariadb-dev locales git\
libmariadb-dev-compat locales \
&& rm -rf /var/lib/apt/lists/*
# --- Locale konfigurieren ---
@@ -19,12 +36,12 @@ RUN sed -i 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
ENV LANG=de_DE.UTF-8 \
LC_ALL=de_DE.UTF-8
# --- Python-Abhängigkeiten ---
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Kopiert die installierten Pakete aus der Builder-Stage
COPY --from=builder /install /usr/local
# --- Applikationscode ---
COPY server/ /app
# Kopiert den Server-Code in das Arbeitsverzeichnis
COPY server/ .
# --- Non-Root User anlegen und Rechte setzen ---
ARG USER_ID=1000
@@ -40,3 +57,4 @@ EXPOSE 8000
# --- Startbefehl für Gunicorn ---
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "wsgi:app"]