# --- STAGE 1: Build Frontend --- FROM node:20-slim AS frontend-builder WORKDIR /build COPY frontend/package*.json ./ RUN npm install COPY frontend/ ./ RUN npm run build # --- STAGE 2: Backend Builder --- FROM python:3.11-slim AS backend-builder WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends build-essential && rm -rf /var/lib/apt/lists/* COPY backend/requirements.txt . RUN pip install --user --no-cache-dir -r requirements.txt # --- STAGE 3: Final Runtime --- FROM python:3.11-slim WORKDIR /app # System Dependencies (FFmpeg ist essenziell) RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Copy Installed Packages COPY --from=backend-builder /root/.local /root/.local ENV PATH=/root/.local/bin:$PATH # Copy Built Frontend from Stage 1 COPY --from=frontend-builder /build/dist /frontend_static # Copy Backend Source COPY backend ./backend # Environment Variables ENV PYTHONPATH=/app ENV PYTHONUNBUFFERED=1 # Expose Port EXPOSE 8001 # Start FastAPI CMD ["uvicorn", "backend.app:app", "--host", "0.0.0.0", "--port", "8001"]