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.
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 containersAfter: 1s to initialize containersThis improvement applies to every job in your repository that uses service containers, adding up to significant time savings across your CI pipelines.
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.
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.