# Stage 1: Frontend bauen FROM node:20-alpine AS frontend WORKDIR /build COPY frontend/package.json frontend/package-lock.json ./ RUN npm ci COPY frontend/ ./ RUN npm run build # Stage 2: Laufzeit (die Claude-Code-CLI bringt das SDK als Binary mit, Node ist nicht nötig) FROM python:3.12-slim RUN apt-get update && apt-get install -y --no-install-recommends \ git curl ca-certificates unzip \ libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b libcairo2 libgdk-pixbuf-2.0-0 libffi8 fonts-dejavu \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -u 1000 app WORKDIR /app COPY backend/requirements.txt backend/requirements.txt RUN pip install --no-cache-dir -r backend/requirements.txt COPY backend/ backend/ COPY prompts/ prompts/ COPY API.md README.md ./ COPY --from=frontend /build/dist frontend/dist RUN mkdir -p storage && chown -R app:app /app USER app ENV PYTHONUNBUFFERED=1 EXPOSE 8020 CMD ["python", "-m", "uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8020"]