Build and publish
The build is a Dagger module; make targets wrap its
entrypoints. The repository ships a Nix flake with the Go toolchain, make,
and dagger:
nix develop # or `direnv allow`, which loads the same shellmake help lists every target:
build Builds the postgres image and exports locallybuild-push Build and publish the multi-arch image to the public registryhelp Prints this help messageBuild locally
Section titled “Build locally”make build builds the image for your local platform and loads it into your
local container image store:
make buildThat is a thin wrapper over the module’s own entrypoint:
dagger call build-postgres-image export-image --name postgres:17.7-pgduckdb-1.1.1NAME and TAG override the exported image reference:
make build NAME=pgtapes TAG=devPublish
Section titled “Publish”make build-push builds the multi-platform image (linux/amd64 and
linux/arm64) and pushes it to a registry. It needs credentials for whatever
registry you point it at:
make build-push REGISTRY=public.ecr.aws/your-alias TAG=17.7-pgduckdb-1.1.1Which calls:
dagger call build-push-postgres-images \ --registry "$REGISTRY" \ --tags "17.7-pgduckdb-1.1.1"The module validates every tag before building — the constraint and its
reason are in Image tags. CI builds the image on pushes to main
and on pull requests; publishing to the public registry is a manually
triggered workflow.