FROM python:3.12-slim

# Establecer variables de entorno
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# Establecer directorio de trabajo
WORKDIR /app

# Instalar dependencias del sistema
RUN apt-get update && apt-get install -y \
    build-essential \
    libpq-dev \
    && rm -rf /var/lib/apt/lists/*

# Instalar dependencias de Python
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt

# Copiar el proyecto
COPY . /app/

# Exponer el puerto
EXPOSE 8000

# Crear un usuario no-root por seguridad (con home directory para Gunicorn)
RUN adduser --disabled-password djangouser
RUN chown -R djangouser:djangouser /app
RUN mkdir -p /app/media /app/static && chown -R djangouser:djangouser /app/media /app/static
USER djangouser

# Comando por defecto para iniciar Gunicorn con Uvicorn workers (Producción)
CMD ["gunicorn", "config.asgi:application", "-k", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000", "--workers", "3"]
