# Trainingsplan - Container-Image (slim Python, Standardbibliothek nur). FROM python:3.13-slim WORKDIR /app # App-Dateien (kein Build-Schritt, kein Framework) COPY server.py index.html styles.css app.js config.json ./ # State-Verzeichnis als Volume (Daten ueberleben Container-Neustart) VOLUME ["/app/data"] ENV TRAINING_STATE_DIR=/app/data ENV PORT=8080 EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s --retries=3 \ CMD python3 -c "import urllib.request;urllib.request.urlopen('http://127.0.0.1:8080/api/meta',timeout=2)" || exit 1 CMD ["python3", "server.py"]