# Pull base image FROM python:3.12.2-bookworm # Set environment variables (we want to write bytecode as we have multiple workers) ENV PYTHONUNBUFFERED 1 ENV PYTHONDONTWRITEBYTECODE 0 # Create and set work directory called `app` RUN mkdir -p /code WORKDIR /code # Install dependencies COPY requirements.txt /tmp/requirements.txt RUN set -ex && \ pip install --upgrade pip && \ pip install -r /tmp/requirements.txt && \ rm -rf /root/.cache/ # Copy local project COPY . /code/ COPY .env.production /code/.env ENV HOME=/code RUN apt-get update && apt-get install -y nodejs npm xvfb netcat-openbsd nano curl # Install playwright (via pip and install script) RUN playwright install-deps && playwright install # Expose port 8000 EXPOSE 8000 HEALTHCHECK CMD curl --fail http://localhost:8000 || exit 1 # Use gunicorn on port 8000 CMD ["gunicorn", "--bind", ":8000", "django_project.wsgi", "--workers", "4", "--worker-tmp-dir", "/dev/shm", "--timeout", "90"]