Blacksmith optionally caches your Docker layers to speed up your workflows
useblacksmith/build-push-action
without useblacksmith/setup-docker-builder
, the runner will use the default builder configured in your environment. However, this builder will not leverage Blacksmith’s Docker layer caching nor will it report Docker analytics to the Blacksmith control plane.docker/build-push-action
?docker/build-push-action
in your workflow, but are instead calling Docker commands directly or are using the docker/bake-action
, you can still cache your Docker layers by setting up a Blacksmith builder before interacting with Docker.
This builder will be hydrated with the layer cache from previous runs and will commit the updated layer cache at the end of the job.
setup-docker-builder
action configures a buildx builder with access to cached layers from previous runsbuild-push-action
then uses this builder to run your Docker build, leveraging the cached layers instead of rebuilding everything from scratchblacksmith-8vcpu-ubuntu-2204
and the arm64 build runs on blacksmith-8vcpu-ubuntu-2204-arm
. Each image is pushed with its own tag that includes the architecture.
For ARM builds, this avoids needing to use QEMU to emulate ARM on an amd64 runner, which can be extremely slow.
useblacksmith/build-push-action
action will support multi-platform builds natively. You’ll simply need to specify the platforms you want to build for in the platforms
input, and Blacksmith will automatically spawn native builders for each platform, eliminating the need for the matrix strategy shown above.
blacksmith-8vcpu-ubuntu-2204
and the arm64 build on a blacksmith-8vcpu-ubuntu-2204-arm
runner) and automatically merged into a single multi-arch manifest.
buildkitd
) that powers Docker builds, runs exclusively on a local Unix socket and is not exposed to the public internet.
The Docker layer cache for each repository is stored in a secure Ceph cluster. Every runner gets an ephemeral authentication token that allows it to request and commit artifacts.
The runners do not have persistent credentials to the Ceph cluster or direct access to artifacts in the cluster. The Ceph cluster is configured with object-level access controls.
Usage & Billing
page to get a breakdown of their current usage.