Product Docs
-
-
-
-
-
-
-
- Install chainctl
- Get Started with chainctl
- chainctl vs Console
- Manage Your chainctl Configuration
- Find and Update Your chainctl Release Version
- Compare Images with chainctl
- Create, View, and Delete chainctl Events
- Manage Identity and Access with chainctl
- Manage Chainguard Container Images with chainctl
-
- chainctl
- chainctl auth
- chainctl auth configure-docker
- chainctl auth login
- chainctl auth logout
- chainctl auth pull-token
- chainctl auth status
- chainctl auth token
- chainctl config
- chainctl config edit
- chainctl config reset
- chainctl config save
- chainctl config set
- chainctl config unset
- chainctl config validate
- chainctl config view
- chainctl events
- chainctl events subscriptions
- chainctl events subscriptions create
- chainctl events subscriptions delete
- chainctl events subscriptions list
- chainctl iam
- chainctl iam account-associations
- chainctl iam account-associations check
- chainctl iam account-associations check aws
- chainctl iam account-associations check gcp
- chainctl iam account-associations describe
- chainctl iam account-associations set
- chainctl iam account-associations set aws
- chainctl iam account-associations set gcp
- chainctl iam account-associations unset
- chainctl iam account-associations unset aws
- chainctl iam account-associations unset gcp
- chainctl iam folders
- chainctl iam folders delete
- chainctl iam folders describe
- chainctl iam folders list
- chainctl iam folders update
- chainctl iam identities
- chainctl iam identities create
- chainctl iam identities create github
- chainctl iam identities create gitlab
- chainctl iam identities delete
- chainctl iam identities describe
- chainctl iam identities list
- chainctl iam identities update
- chainctl iam identity-providers
- chainctl iam identity-providers create
- chainctl iam identity-providers delete
- chainctl iam identity-providers list
- chainctl iam identity-providers update
- chainctl iam invites
- chainctl iam invites create
- chainctl iam invites delete
- chainctl iam invites list
- chainctl iam organizations
- chainctl iam organizations delete
- chainctl iam organizations describe
- chainctl iam organizations list
- chainctl iam role-bindings
- chainctl iam role-bindings create
- chainctl iam role-bindings delete
- chainctl iam role-bindings list
- chainctl iam role-bindings update
- chainctl iam roles
- chainctl iam roles capabilities
- chainctl iam roles capabilities list
- chainctl iam roles create
- chainctl iam roles delete
- chainctl iam roles list
- chainctl iam roles update
- chainctl images
- chainctl images diff
- chainctl images history
- chainctl images list
- chainctl images repos
- chainctl images repos build
- chainctl images repos build apply
- chainctl images repos build edit
- chainctl images repos build list
- chainctl images repos build logs
- chainctl images repos list
- chainctl libraries
- chainctl libraries entitlements
- chainctl libraries entitlements list
- chainctl packages
- chainctl packages versions
- chainctl packages versions list
- chainctl update
- chainctl version
Open Source
Education
Chainguard Libraries for Python
The June 2025 Learning Lab with Patrick Smyth covers Chainguard Libraries for Python. Open source libraries help you move fast, but pulling in external dependencies can introduce supply chain risk. This session covers fundamental concepts of Chainguard Libraries, package managers and dependencies, PyPI and build tools, configuring repository managers, and running example application builds.
Sections
- 0:00 Introduction and welcome
- 0:54 Patrick Smyth introduction and background
- 1:47 Chainguard! Who are we?
- 2:47 Chainguard Containers and the “boss assigned me to fix Ubuntu” problem
- 4:12 Introduction to Chainguard Libraries for Python
- 5:04 Python libraries fundamentals - modules, packages, and libraries
- 6:34 The dependency graph problem and modern ecosystem challenges
- 8:57 PyPI (Python Package Index) overview and infrastructure
- 10:53 Supply chain attacks on the rise and threats to the Python ecosystem
- 11:39 Supply chain meme calendar - an attack every month this year
- 13:54 Anatomy of supply chain attacks and attack vectors
- 17:43 Chainguard Libraries!
- 19:34 Chainguard Factory overview and operational security
- 21:33 Case study: Ultralytics YOLO December 2024 attack
- 23:22 Technical caveats and requirements for Chainguard Libraries
- 25:06 Demo introduction and Flask project overview
- 27:48 Accessing demo materials on Chainguard Academy
- 29:00 Demo: Cloning and setting up the Flask project
- 31:17 Demo: Creating virtual environment and installing from PyPI
- 33:06 Demo: Running Flask application and testing with libCheck tool
- 34:28 Demo: Configuring pip for Chainguard Libraries via repository manager
- 36:19 Demo: Installing dependencies from Chainguard Libraries
- 37:02 Demo: Verification with libCheck
- 38:22 Demo: Containerizing the demo application
- 40:25 Demo: Building and running containerized Flask application
- 41:41 Additional configuration options and documentation resources
- 42:19 Q&A: Repository manager setup and configuration
- 43:26 Q&A: Architecture support and glibc requirements
- 44:34 Q&A: libCheck tool open source plans and detailed output
- 46:05 Q&A: CVE scanning with Grype and vulnerability management
Demo
In the demo, we switch a Flask application to use Chainguard Libraries for Python, sourcing dependencies from a repository manager (Artifactory) set up to pull first from the Chainguard Libraries for Python index with a fallback to the Python Package Index (PyPI).
We demonstrate two approaches. First, we modify the ~/.pip/pip.conf
file to pull from the virtual repository set up in the repository manager:
[global]
index-url = <repository-url>
After changing this global setting, we install and run the application from a virtual environment, then use Chainguard’s libCheck
tool to test the provenance of the packages in the virtual environment. Chainguard is in the process of releasing this tool under an open source license.
We also update the demo application’s requirements.txt
file and build and run the application from a Chainguard Container.
Resource Links
- Event page
- Slide deck
- Chainguard Libraries
- Chainguard Libraries documentation
- Chainguard Libraries for Python documentation
- Python global configuration
- Python build configuration
- Python Package Index (PyPI)
- pip documentation
- Python Packaging User Guide
- Cheese Must Stand: Defending the Python Library Ecosystem in 2025 at PyCon 2025
Last updated: 2025-06-25 12:30