Runnable companions to the tutorial.
Every Containerfile in the tutorial body is mirrored here as a
complete, podman build-ready project. Read the matching
tutorial section for context, then build directly from the example
directory.
Containerized examples
Six runnable projects covering the multi-stage build patterns taught in §4 and the multi-container compose pattern from §7. Each one is verified to build and run end-to-end against the live Hummingbird image catalog as of May 2026.
Quarkus, JVM mode
Mixed-vendor multi-stage: UBI openjdk-21 builder
(has Maven) compiles a Quarkus fast-jar; Hummingbird
openjdk:21-runtime (JRE-only) serves it. Single
REST endpoint, no native-image complexity.
Python wheel-build pattern
Compile wheels in python:3.13-builder, install from
wheels in python:3.13. The runtime image never sees a
compiler.
Go on Hummingbird Go runtime
The smallest of the bunch. CGO_ENABLED=0 static
binary on the Hummingbird go:1.26 runtime —
typically around 30 MB total.
Node.js HTTP service
Trivial HTTP server with structured logging via pino,
showing the npm install → COPY node_modules pattern across
nodejs:20-builder and nodejs:20.
ML inference variant
Same wheel-build pattern as the Python example, but with a
NumPy dependency that compiles native code. Demonstrates the
shared-library COPY pattern (libstdc++, libgcc_s, libgomp)
for distroless runtimes — the technique scales to
transformers + torch when ready.
Multi-container stack
Web app, PostgreSQL, OpenTelemetry collector — all on
Hummingbird base images. Demonstrates the SELinux :Z
flag, healthcheck timing, and service-name DNS in one file.
Building any example
Every Containerfile in this directory accepts the same two build args, so the same command builds them all:
podman build \
--build-arg HB_REGISTRY="${HB_REGISTRY:-quay.io/hummingbird}" \
--build-arg RH_REGISTRY="${RH_REGISTRY:-registry.access.redhat.com}" \
-t my-image:latest \
.
If a build fails on manifest unknown
Image names and the existence of specific Hummingbird builder images vary across the early-access and post-GA windows. The reconciliation plan, section A tracks every unverified image reference. If a build fails, that's the first place to check.