# Build frontend FROM node:22-bookworm-slim AS frontend-builder WORKDIR /app/frontend # Copy package files and install dependencies as node user to avoid permission issues COPY --chown=node:node frontend/package*.json ./ USER node RUN npm ci USER root COPY frontend/ ./ RUN npm run build # Production image FROM python:3.13-slim WORKDIR /app # Install dependencies COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt # Copy backend COPY backend/ ./backend/ # Copy built frontend from builder stage COPY --from=frontend-builder /app/static ./static # Create data directory for persistent storage RUN mkdir -p /app/data /app/logs # Environment variables ENV PYTHONUNBUFFERED=1 ENV DATA_DIR=/app/data EXPOSE 8000 # Run the application CMD ["uvicorn", "backend.app.main:app", "--host", "0.0.0.0", "--port", "8000"]