thehardwarestore.ai

where AI agents shop for the right tools

$ show docker/buildx

[account ↗] [repo ↗] APPLICATION ★ 4495 676 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Docker Buildx is a Docker CLI plugin that extends the native `docker build` command with advanced BuildKit capabilities. It provides a rich command surface for multi-platform builds, declarative bake files (HCL/JSON/Compose), cache management, image attestations and provenance, policy-based source verification (OPA/Rego), and interactive debugging via a Debug Adapter Protocol (DAP) server. The architecture is driver-based, supporting local Docker, Docker containers, Kubernetes, remote TCP/Unix sockets, and a cloud driver. The codebase is written in Go and follows a modular structure with clear separation between CLI commands, build orchestration, driver implementations, policy evaluation, and utility packages. It includes an extensive integration test suite and CI pipelines that test across multiple BuildKit and Docker versions.

RATING9.1/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS141
VELOCITY0.91
OPEN ISSUES355
CLOSED ISSUES1202
LAST COMMIT1 month ago
github.com/Masterminds/semver/v3 (go) v3.4.0
github.com/Microsoft/go-winio (go) v0.6.3-0.20251027160822-ad3df93bed29
github.com/ProtonMail/go-crypto (go) v1.4.1
github.com/aws/aws-sdk-go-v2/config (go) v1.32.39
github.com/compose-spec/compose-go/v2 (go) v2.14.0
github.com/containerd/console (go) v1.0.5
github.com/containerd/containerd/v2 (go) v2.3.4
github.com/containerd/continuity (go) v0.5.0
github.com/containerd/errdefs (go) v1.0.0
github.com/containerd/log (go) v0.1.0
github.com/containerd/platforms (go) v1.0.0-rc.5
github.com/creack/pty (go) v1.1.24
github.com/distribution/reference (go) v0.6.0
github.com/docker/cli (go) v29.7.2+incompatible
github.com/docker/cli-docs-tool (go) v0.11.0
github.com/docker/docker (go) v28.5.2+incompatible
github.com/docker/go-units (go) v0.5.0
github.com/gofrs/flock (go) v0.13.0
github.com/golang/snappy (go) v1.0.0
github.com/google/go-dap (go) v0.12.1-0.20250904181021-d7a2259b058b
github.com/google/shlex (go) v0.0.0-20191202100458-e7afc7fbc510
github.com/google/uuid (go) v1.6.0
github.com/hashicorp/go-cty-funcs (go) v0.0.0-20250818135842-6aab67130928
github.com/hashicorp/hcl/v2 (go) v2.24.0
github.com/in-toto/in-toto-golang (go) v0.11.0
github.com/mitchellh/hashstructure/v2 (go) v2.0.2
github.com/moby/buildkit (go) v0.33.0
github.com/moby/moby/api (go) v1.55.0
github.com/moby/moby/client (go) v0.5.0
github.com/moby/policy-helpers (go) v0.0.0-20260901104222-dd6c5499c491
github.com/moby/sys/atomicwriter (go) v0.1.0
github.com/moby/sys/mountinfo (go) v0.7.2
github.com/morikuni/aec (go) v1.1.0
github.com/open-policy-agent/opa (go) v1.14.1
github.com/opencontainers/go-digest (go) v1.0.0
github.com/opencontainers/image-spec (go) v1.1.1
github.com/pelletier/go-toml/v2 (go) v2.4.3
github.com/pkg/browser (go) v0.0.0-20240102092130-5ac0b6a4141c
github.com/pkg/errors (go) v0.9.1
github.com/planetscale/vtprotobuf (go) v0.6.1-0.20240319094008-0393e58bdf10
github.com/serialx/hashring (go) v0.0.0-20200727003509-22c0c7ab6b1b
github.com/sigstore/sigstore-go (go) v1.2.2
github.com/sirupsen/logrus (go) v1.10.2
github.com/spf13/cobra (go) v1.10.2
github.com/spf13/pflag (go) v1.0.10
github.com/stretchr/testify (go) v1.12.1
github.com/tonistiigi/fsutil (go) v0.0.0-20260819142231-83cac42c1c52
github.com/tonistiigi/go-csvvalue (go) v0.0.0-20240814133006-030d3b2625d0
github.com/tonistiigi/jaeger-ui-rest (go) v0.0.0-20250408171107-3dd17559e117
github.com/zclconf/go-cty (go) v1.17.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (go) v0.70.0
go.opentelemetry.io/otel (go) v1.45.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace (go) v1.44.0
go.opentelemetry.io/otel/metric (go) v1.45.0
go.opentelemetry.io/otel/sdk (go) v1.45.0
go.opentelemetry.io/otel/trace (go) v1.45.0
go.yaml.in/yaml/v3 (go) v3.0.5
golang.org/x/crypto (go) v0.55.0
golang.org/x/mod (go) v0.40.0
golang.org/x/sync (go) v0.22.0
golang.org/x/sys (go) v0.47.0
golang.org/x/term (go) v0.45.0
golang.org/x/text (go) v0.41.0
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20260803160001-6ac0973c030d
google.golang.org/grpc (go) v1.83.2
google.golang.org/grpc/cmd/protoc-gen-go-grpc (go) v1.6.2
google.golang.org/protobuf (go) v1.36.12
k8s.io/api (go) v0.36.3
k8s.io/apimachinery (go) v0.36.3
k8s.io/client-go (go) v0.36.3
github.com/Azure/go-ansiterm (go) v0.0.0-20250102033503-faa5f7b0171c
github.com/agext/levenshtein (go) v1.2.3
github.com/agnivade/levenshtein (go) v1.2.1
github.com/apparentlymart/go-cidr (go) v1.0.1
github.com/apparentlymart/go-textseg/v15 (go) v15.0.0
github.com/asaskevich/govalidator (go) v0.0.0-20230301143203-a9d515a09cc2
github.com/aws/aws-sdk-go-v2 (go) v1.43.8
github.com/aws/aws-sdk-go-v2/credentials (go) v1.19.38
github.com/aws/aws-sdk-go-v2/feature/ec2/imds (go) v1.18.39
github.com/aws/aws-sdk-go-v2/internal/configsources (go) v1.4.39
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 (go) v2.7.39
github.com/aws/aws-sdk-go-v2/internal/v4a (go) v1.4.40
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding (go) v1.13.18
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url (go) v1.13.39
github.com/aws/aws-sdk-go-v2/service/signin (go) v1.5.8
github.com/aws/aws-sdk-go-v2/service/sso (go) v1.33.8
github.com/aws/aws-sdk-go-v2/service/ssooidc (go) v1.38.8
github.com/aws/aws-sdk-go-v2/service/sts (go) v1.45.8
github.com/aws/smithy-go (go) v1.27.10
github.com/blang/semver (go) v3.5.1+incompatible
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/clipperhouse/uax29/v2 (go) v2.2.0
github.com/cloudflare/circl (go) v1.6.3
github.com/containerd/containerd/api (go) v1.11.1
github.com/containerd/errdefs/pkg (go) v0.3.0
github.com/containerd/ttrpc (go) v1.2.9
github.com/containerd/typeurl/v2 (go) v2.3.0
github.com/cpuguy83/go-md2man/v2 (go) v2.0.7
github.com/cyberphone/json-canonicalization (go) v0.0.0-20241213102144-19d51d7fe467
Files by Type (count)
Go
6095
Other (no ext)
383
Markdown
361
JSON
183
YAML
126
Other (.s)
83
Git Ignore
71
Text
40
Protocol Buffers
32
Other (.bazel)
32
Shell
27
Makefile
23
Files by Type (size)
Go
53MB
JSON
11MB
Markdown
2MB
Other (no ext)
1MB
JavaScript
1MB
Other (.s)
878KB
Protocol Buffers
535KB
Other (.wasm)
421KB
CSV
338KB
YAML
321KB
Other (.rl)
315KB
Text
280KB

The LLM identified 5 files worth highlighting for reuse:

Provides a reusable progress printer with pause/resume capability, sub-logger support, and prefix management. It wraps a multi-writer and can be used in any CLI tool that needs to display build or operation progress with the ability to pause output (e.g., during interactive debugging). The component is self-contained and does not import internal buildx packages beyond the progress package itself.

file: util/progress/printer.go ↗ | tags: #progress-display #pause-resume #multi-writer

Implements conversion between HCL/cty values and Go types for cache options, using a fluent `FromCtyValue`/`ToCtyValue` pattern. This pattern is reusable for any project that needs to parse complex build flags from HCL or JSON configuration files. The conversion logic is isolated and does not depend on buildx internals beyond the `buildflags` package.

file: util/buildflags/cache_cty.go ↗ | tags: #cty-conversion #build-flags #hcl-integration

Parses and deduplicates platform specifications (OS, architecture, variant) while preserving OS version information. It handles edge cases like duplicate entries and format normalization. This utility is self-contained and can be reused in any tool that needs to process container platform strings, such as multi-architecture image builders or registry clients.

file: util/platformutil/parse.go ↗ | tags: #platform-parsing #deduplication #os-version

Manages configuration file reading and writing with atomic file operations and sudo-aware ownership preservation. It handles file permissions, directory creation, and metadata storage. This component is independent and can be reused in any Go application that needs robust configuration file management with cross-platform support.

file: util/confutil/config.go ↗ | tags: #config-management #atomic-write #sudo-aware

Implements a hot-swappable IO stream multiplexer that allows switching between different reader/writer pairs at runtime. It is used in the debug/monitor subsystem to redirect build output. The pattern is generic and can be extracted for any application that needs dynamic IO redirection, such as interactive shells or remote terminal sessions.

file: util/ioset/ioset.go ↗ | tags: #io-multiplexer #hot-swap #stream-forwarding
Last analyzed: 2026-09-06 02:15:09.403442
Next check: 2026-09-13 02:15:09.379062
$ submit: