Thanks for your interest in docker-exporter! Contributions are welcome.
docker-exporter is a standard Go module (Go 1.26+). No code generation or extra tooling is required.
go build ./... # build
go vet ./... # vet
go test ./... # unit testsFormatting is enforced in CI — run gofmt -w . before committing.
You can run the exporter locally against your Docker socket:
go run . --log-level debug
curl -fsS localhost:8080/metrics- Keep changes focused; one logical change per PR.
- Use Conventional Commits for commit
messages (
feat:,fix:,docs:,refactor:,ci:…). - Add or update tests for behavioural changes.
- Make sure
gofmt,go vet, andgo test ./...pass.
Use the issue templates. For security-sensitive reports, see SECURITY.md.
Releases are automated — no manual tagging:
- release-please watches
mainand, from the Conventional Commit history, maintains a "release PR" that bumps the version and updatesCHANGELOG.md. Merging it creates the tag and the GitHub release. - goreleaser then builds the binaries and the
multi-arch (
amd64/arm64) image, pushes it toghcr.io/davidborzek/docker-exporter, and attaches archives + checksums to the release — in the same workflow run (hanging off release-please's output, so no PAT is needed).