Skip to content

Python + Docker Best Practices

stuff to do when deploying a python project using docker

  1. Follow 000-docker
  2. Use -B or export PYTHONDONTWRITEBYTECODE=1.
  3. export PYTHONUNBUFFERED=1, don’t buffer stdout or stderr.
  4. Prefer uv for dev + lockfile generation, use uv export --format requirements.txt --no-dev --no-hashes > requirements.txt in a non-final layer to get this. Don’t copy uv to final image.
  5. PYTHONFAULTHANDLER=1, always on crash reporting.
  6. python -m module
  7. python -m pip --no-cache-dir --index-url '<url>' -r requirements.txt, use pull-through index for enterprise, or set this up if you don’t currently have it.