This repository builds and publishes a base Docker image containing the Delve debugger. This image is intended to be used as a base for debugging Go applications in containers.
- Alpine-based Go image
dlv(Delve debugger) installed in/go/bin/dlv- CA certificates and mime types
You can use this image in your Dockerfiles:
FROM ghcr.io/jaegertracing/base-image-with-debugger:latest
# ... your build steps ...The container image is only pushed on published GitHub Releases.
Delve refuses to attach to a binary built by a newer Go than it knows about, so a project moving to a new Go release needs a matching Delve release here first. Where the consumer's own tests run its debug image, as Jaeger's all-in-one integration test does, that mismatch fails CI rather than merely degrading the debugger.
- Look for open Renovate pull requests before writing anything. Renovate tracks both
github.com/go-delve/delveand thegolangimage, so the bump is often already waiting, and merging that pull request is better than opening one that supersedes it. Otherwise bump both by hand and merge the change, remembering that thegolangimage appears twice in theDockerfile, once for the build stage and once for the runtime stage. #19, the Go 1.27 upgrade, is a worked example: bothFROMlines, thedelverequirement, and the module's owngodirective. - Publish a GitHub release, and the release workflow will push the image to GHCR.
- Repoint the consuming project at the new image, pinning the tag together with its digest.
The versions of the base image and Delve are managed by Renovate.
https://developer.mend.io/github/jaegertracing/base-image-with-debugger
You can build the image locally using the provided Makefile:
# Build for current architecture
make build
# Build for all supported architectures (requires Docker Buildx)
make build-all