FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# Debian/Ubuntu mirrors for apt
RUN rm -f /etc/apt/sources.list.d/debian.sources && \
    printf '%s
' \
      'deb https://linux-mirror.liara.ir/repository/debian bookworm main' \
      'deb https://linux-mirror.liara.ir/repository/debian bookworm-updates main' \
      'deb https://linux-mirror.liara.ir/repository/debian-security bookworm-security main' \
    > /etc/apt/sources.list

# System deps for MySQL client (pkg-config required by mysqlclient to find libs)
RUN apt-get update && apt-get install -y --no-install-recommends \
    default-libmysqlclient-dev \
    build-essential \
    pkg-config \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .

# Python mirrors
RUN pip config --user set global.index-url https://package-mirror.liara.ir/repository/pypi/simple && \
    pip config --user set global.extra-index-url https://mirror.cdn.ir/repository/pypi/simple && \
    pip config --user set global.trusted-host package-mirror.liara.ir && \
    pip config --user set global.trusted-host mirror.cdn.ir && \
    pip config --user set global.trusted-host mirror-pypi.runflare.com

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]
