Skip to main content

Overview

A significant percentage of GitHub Actions workflows use service containers to run databases, caches, and other dependencies alongside their jobs. Every time a workflow runs, these containers must be pulled from a registry and extracted before the job can begin. This adds seconds to minutes of overhead to every CI run. With Docker container caching, Blacksmith pre-hydrates commonly used containers directly onto the runners. When your workflow starts, the containers are already present and ready to go. The pull and extraction steps become a no-op, shaving valuable time off every job in your repository.

Impact

The “Initialize Containers” step in GitHub Actions is where service containers are pulled and started. With Docker container caching, this step goes from taking over a minute to completing in about a second. Before: 1m 20s to initialize containers Initialize Containers step taking 1 minute 20 seconds without caching After: 1s to initialize containers Initialize Containers step taking 1 second with caching This improvement applies to every job in your repository that uses service containers, adding up to significant time savings across your CI pipelines.

How it works

Docker container caching uses sticky disks to persist container images across workflow runs. When a container is first pulled and extracted, it gets stored on a sticky disk associated with your repository. On subsequent runs, the container is already present on the runner and ready to start immediately.

Availability

Docker container caching is currently in private beta. To enable this feature for your organization, please reach out to [email protected].

Monitoring usage

You can monitor the storage usage for your Docker container sticky disk in the Sticky Disks page in the Blacksmith dashboard. Future updates will add more detailed information about exactly which container images are being cached.

Pricing

Docker container caching is charged at the same rate as sticky disks. For pricing details, please visit our pricing page.