# --- 1. Frontend bauen --- FROM node:20-bookworm-slim AS frontend-build WORKDIR /app COPY frontend ./frontend WORKDIR /app/frontend RUN npm install && npm run build # --- 2. Backend-Stage --- FROM python:3.13-slim-bullseye WORKDIR /app # Backend-Dateien korrekt kopieren COPY backend/app.py ./backend/app.py COPY backend/util ./backend/util COPY backend/auth ./backend/auth COPY backend/tools ./backend/tools COPY backend/admin.py ./backend/admin.py COPY backend/templates ./backend/templates # Store DB config in a docker-friendly location (/config), override via DB_CONFIG_PATH env if needed COPY backend/config /config COPY backend/requirements.txt ./requirements.txt COPY backend/entrypoint.sh ./entrypoint.sh # Frontend aus Build-Stage übernehmen COPY --from=frontend-build /app/frontend/dist ./frontend/dist # Python-Abhängigkeiten installieren RUN pip install --no-cache-dir -r requirements.txt # Entrypoint ausführbar machen RUN chmod +x /app/entrypoint.sh # Flask starten WORKDIR /app/backend ENV PYTHONPATH=/app/backend ENV DB_CONFIG_PATH=/config/db_config.json EXPOSE 5000 ENTRYPOINT ["/app/entrypoint.sh"]