Binaries of the CLI are no longer being released as Blubber is primarily used as a BuildKit frontend. Use the Docker syntax to ensure behavior that is identical to that we use in CI.
Blubber as a BuildKit frontend
Blubber is now implemented as a BuildKit frontend that can be used directly with
docker buildx or
Using Blubber with
docker build or
To build an image from your
blubber.yaml using Docker build tools, simply add the correct syntax directive at the top of the file that references the image name and version that you're using. Be sure to check for the latest version/tag on docker-registry.wikimedia.org to ensure compatibility with WMF CI as we'll likely be using the latest release.
# syntax=docker-registry.wikimedia.org/repos/releng/blubber:v0.12.1 version: v4 variants: build: base: docker-registry.wikimedia.org/golang1.18 lives: in: /src builders: - custom: requirements: [Makefile, src/] command: [make] test: copies: - from: build source: /src/my-program destination: ./ entrypoint: [./my-program]
That's it. Now your
blubber.yaml can be used directly with Docker build tools!
$ docker build --target test -f blubber.yaml .
$ docker buildx build --target test -f blubber.yaml --platform=linux/amd64,linux/arm64 .
Using Blubber with
buildctl requires a running instance of
buildkitd, so we recommend using Docker tools for most development use cases. However,
buildctl is what we use in CI, so the closest thing to that locally would be the following.
docker run -d --name buildkitd --privileged docker-registry.wikimedia.org/repos/releng/buildkit:wmf-v0.10-1 export BUILDKIT_HOST=docker-container://buildkitd buildctl build --frontend=gateway.v0 \ --opt source=docker-registry.wikimedia.org/repos/releng/blubber::v0.12.1 \ --local context=. \ --local dockerfile=. \ --opt filename=blubber.yaml \ --opt target=test
Using Go tools
go install gitlab.wikimedia.org/repos/releng/blubber/cmd/blubber@latest
(Be sure that
$GOPATH/bin is in your
PATH. If the environment variable is unset, the default is returned by
go env GOPATH.)
Installing from source
See CONTRIBUTING.md in the Blubber repo.
Now that you have Blubber installed, try your hand at one of the tutorials.