Features
Built for Node Operators
A complete CD pipeline designed from the ground up for the Cosmos ecosystem. Every feature exists because a node operator needed it.
Automatic Scanning
Dockermint continuously monitors GitHub repositories for new releases across every chain you track. When a new version is tagged, the build pipeline triggers automatically. No cron jobs, no manual checks, no missed upgrades.
[header]
name = "Cosmos"
repo = "https://github.com/cosmos/gaia"
binary_name = "gaiad"
[INFO] Scanning cosmos/gaia...
[INFO] New release detected: v25.3.1
[INFO] Triggering build pipeline...Deterministic Builds
Every build produces the exact same binary given the same input. Locked dependencies, pinned toolchains, and content-addressable layers guarantee that your images are identical across environments. Audit with confidence.
[variables]
repo_commit = { shell = "git log -1 --format='%H'" }
repo_version = { shell = "git describe --exact-match" }
golang_version = { shell = "grep '^go ' go.mod" }
[build.linker.variables]
"cosmos-sdk/version.Version" = "{{repo_version}}"
"cosmos-sdk/version.Commit" = "{{repo_commit}}"
[BUILD] gaiad v25.3.1 (run 1) sha256:9a3f7c...e41b
[BUILD] gaiad v25.3.1 (run 2) sha256:9a3f7c...e41b
[VERIFY] Deterministic ✓Multi-Architecture
Build for both AMD64 and ARM64 in a single pipeline run. Deploy on cloud VMs, bare metal servers, or even Raspberry Pi clusters. One configuration, every architecture supported out of the box.
[flavours.available]
architecture = ["x86_64", "aarch64"]
[BUILD] cosmos-gaiad-goleveldb:25.3.1-alpine3.23
[ARCH] Building for x86_64... done (3m 12s)
[ARCH] Building for aarch64... done (4m 08s)
[MANIFEST] Multi-arch manifest created
[PUSH] cosmos-gaiad-goleveldb:25.3.1-alpine3.23Database Flexibility
Choose your database backend at build time. LevelDB for compatibility, PebbleDB for raw performance. Dockermint handles the build flags and dependency patching so you don't have to fork anything.
[flavours.available]
db_backend = ["goleveldb", "pebbledb"]
[flavours.default]
db_backend = "goleveldb"
[build.linker.variables]
"cosmos-sdk/types.DBBackend" = "{{db_backend}}"
# Build with: --db-backend pebbledb
[IMAGE] cosmos-gaiad-pebbledb:25.3.1-alpine3.23Registry Push
Built images are automatically pushed to your Docker registry of choice. Works with Docker Hub, GitHub Container Registry, or any OCI-compliant private registry. Tag strategies are fully configurable.
[image]
tag = "cosmos-gaiad-{{db_backend}}:{{SEMVER_TAG}}-{{running_env}}"
[PUSH] registry.io/cosmos-gaiad-goleveldb:25.3.1-alpine3.23
[PUSH] registry.io/cosmos-gaiad-goleveldb:25.3.1-alpine3.23-x86_64
[PUSH] registry.io/cosmos-gaiad-goleveldb:25.3.1-alpine3.23-aarch64
[DONE] 3 tags pushed to registryTelegram Alerts
Receive instant Telegram notifications when builds complete, fail, or when new chain versions are detected. Stay informed without constantly checking dashboards. Configure per-chain or global alerts.
🔔 Dockermint Build Notification
Chain: Cosmos (gaiad)
Version: v25.3.1
Arch: x86_64, aarch64
DB: goleveldb
Env: alpine3.23
Status: ✅ Success
Time: 4m 32s
Image: cosmos-gaiad-goleveldb:25.3.1-alpine3.23Build Traces
Every build step is logged with timestamps, checksums, and exit codes. Debug failures instantly, audit past builds, and prove exactly how an image was produced. Nothing is hidden.
[09:41:02] Scrapper: clone cosmos/gaia@v25.3.1
[09:41:05] Variables: golang=1.23, wasmvm=v2.2.2
[09:41:08] Pre-build: ADD libwasmvm_muslc.x86_64.a
[09:41:09] Builder: install alpine-sdk linux-headers
[09:41:19] Build: gaiad (static, netgo, muslc)
[09:45:27] Copy: /go/bin/gaiad -> /usr/bin/gaiad
[09:45:29] Image: cosmos-gaiad-goleveldb:25.3.1
[09:45:31] Push: sha256:9a3f7c...e41b02
[09:45:33] Pipeline complete (4m 31s)Customizable Builds
Static or dynamic linking, rootless containers, distroless base images, custom build flags. Configure every aspect of your image to match your security and performance requirements.
[flavours.available]
binary_type = ["dynamic", "static"]
running_env = ["alpine3.23", "ubuntu-noble", "distroless"]
running_user = ["root", "custom", "dockermint"]
build_tags = ["netgo", "ledger", "muslc"]
[flavours.default]
binary_type = "static"
running_env = "alpine3.23"
running_user = "root"
build_tags = ["netgo", "muslc"]
[user.dockermint]
username = "dockermint"
uid = 10000
gid = 10000Before & After
The Difference
Every feature in Dockermint was built to solve a real problem that node operators face daily.
Ready to Get Started?
Dockermint is free, open-source, and ready to use. Check out the repository and start building standardized images today.