FROM docker.iranserver.com/python:3.10

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# Debian/debian mirrors for apt
RUN rm -f /etc/apt/sources.list /etc/apt/sources.list.d/* && \
printf '%s\n' \
'deb https://mirror-linux.runflare.com/debian/ bookworm main contrib non-free non-free-firmware' \
'deb https://mirror-linux.runflare.com/debian/ bookworm-updates main contrib non-free non-free-firmware' \
'deb https://mirror-linux.runflare.com/debian-security/ bookworm-security main contrib non-free non-free-firmware' \
'' \
> /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 constraints.txt ./

RUN PIP_CONSTRAINT=/app/constraints.txt \
    pip install \
    --prefer-binary \
    --index-url https://mirror-pypi.runflare.com/simple \
    --extra-index-url https://package-mirror.liara.ir/repository/pypi/simple \
    --extra-index-url https://mirror.cdn.ir/repository/pypi/simple \
    --extra-index-url https://mirror2.chabokan.net/pypi/simple \
    --trusted-host mirror-pypi.runflare.com \
    --trusted-host package-mirror.liara.ir \
    --trusted-host mirror.cdn.ir \
    --trusted-host mirror2.chabokan.net \
    -r requirements.txt

COPY entrypoint.sh /app/entrypoint.sh
COPY . .

EXPOSE 8000


ENTRYPOINT ["sh", "/app/entrypoint.sh"]
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]
