# Multi-stage Dockerfile for Red Head Python Backend # Build stage FROM python:3.9-slim as builder # Set working directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ gcc \ && rm -rf /var/lib/apt/lists/* # Copy requirements and install Python dependencies COPY src/server/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Production stage FROM python:3.9-slim # Set working directory WORKDIR /app # Copy Python dependencies from builder stage COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages # Copy application code COPY src/server/ . # Copy website files COPY src/website/ website/ # Create directory for cache if it doesn't exist RUN mkdir -p website/cache # Expose port EXPOSE 6006 # Set environment variables ENV FLASK_APP=app.py ENV FLASK_ENV=production # Health check HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:6006/api || exit 1 # Run the application CMD ["python", "app.py"]