Real Python Podcast E298 Title Image

Episode 298: Reducing the Size of Python Docker Containers

The Real Python Podcast

How can you easily reduce the size of a Python Docker container? What are the exceptions you should catch in your code? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.

Episode Sponsor:

We cover a tutorial by Khuyen Tran at CodeCut about shrinking the size of a Python Docker container. The piece explores SlimToolKit, which analyzes a container at runtime, identifies what files are used, and then builds a minimal image with only those dependencies.

We dig into a recent piece by Trey Hunner about Python exceptions. When trying to determine a strategy to handle potential errors, which exceptions should you catch and which should you leave unhandled?

We also share other articles and projects from the Python community, including recent releases, two PEPs that have been deferred to 3.16, a critical vulnerability in an open-source ASGI framework, resolving a lazy import manually, a project to anonymize sensitive PII data, and a tool for loading Django settings from a TOML file.

This episode is sponsored by AURI by Endor Labs.

Topics:

  • 00:00:00 – Introduction
  • 00:02:32 – Django 6.1 Alpha 1 Released
  • 00:03:07 – Nuitka Python Compiler Release 4.1
  • 00:04:00 – PEP 813: The Pretty Print Protocol (Deferred to 3.16)
  • 00:04:28 – PEP 830: Add Timestamps to Exceptions and Tracebacks
  • 00:04:50 – Millions of AI agents imperiled by critical vulnerability in open source package
  • 00:07:27 – What Types of Exceptions Should You Catch?
  • 00:13:28 – Sponsor: AURI from Endor Labs
  • 00:14:18 – PyCon US 2026 Packaging Summit Recap
  • 00:18:39 – Slim Down Python Docker Containers
  • 00:24:17 – Video Course Spotlight
  • 00:25:45 – Resolve a Lazy Import Manually
  • 00:28:04 – presidio: Detect, Redact, & Anonymize Sensitive Data (PII)
  • 00:32:37 – dj-toml-settings: Load Django settings from a TOML file
  • 00:37:14 – Thanks and goodbye

News:

Show Links:

  • What Types of Exceptions Should You Catch? – The trickiest programming bugs are often caused by catching exceptions that you didn’t mean to catch or handling exceptions in ways that obfuscate the actual error that’s occurring. Which exceptions should you catch and which should you leave unhandled?
  • PyCon US 2026 Packaging Summit Recap – Per-talk notes from the PyCon US 2026 Packaging Summit, including: Emma Smith on Wheel 2.0 and Zstandard compression, Mike Fiedler on PyPI abuse vectors, Mahe Iram Khan on ecosystems, lightning talks on PEP 772, mobile wheels, AI accelerator variants, and the roundtable discussions.
  • Slim Down Python Docker Containers – Learn how SlimToolKit can reduce a Python Docker image by analyzing what your app actually uses at runtime. This tutorial walks through slimming a Chainlit LLM chatbot image, shows where container bloat comes from, and explains how to avoid breaking lazily loaded Python frameworks.
  • Resolve a Lazy Import Manually – Learn how to work around the Python 3.15 machinery to resolve an explicit lazy import manually.
  • TIL #141 – Inspect a lazy import - mathspp

Projects:

Additional Links: