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 RUN adduser --disabled-password djangouser RUN chown -R djangouser:djangouser /app 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"]