# Use official Python slim image FROM python:3.12-slim # Set Python optimizations ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 ENV PIP_NO_CACHE_DIR=1 WORKDIR /usr/src/app # Install system dependencies (PostgreSQL client libraries) RUN apt-get update && apt-get install -y --no-install-recommends \ libpq-dev \ curl \ && rm -rf /var/lib/apt/lists/* # Copy and install Python dependencies COPY requirements.txt ./ RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy application code COPY ./app /usr/src/app/app # Create directories for volumes RUN mkdir -p /usr/src/app/storage # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD curl -f http://localhost:80/api/v3/current || exit 1 # Start uvicorn CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--workers", "2"]