FROM python:3.13-slim-bookworm ENV PYTHONUNBUFFERED=1 \ PYTHONFAULTHANDLER=1 \ VIRTUAL_ENV=/opt/venv \ PATH="/opt/venv/bin:$PATH" RUN pip install uv # Create the virtual environment directory RUN python -m venv $VIRTUAL_ENV WORKDIR /code COPY pyproject.toml uv.lock /code/ RUN uv sync --all-groups --project . RUN rm -rf /code/pyproject.toml /code/uv.lock # mount local code over /code, but /opt/venv remains untouched COPY . /code/ # Expose port 8000 for the Django development server EXPOSE 8000 # Command to run the Django development server (can be overridden by docker-compose.yml) CMD ["uv", "run", "python", "manage.py", "runserver", "0.0.0.0:8000"]