Skip to content
Latchkey

How to Cache Docker Layers in Bitbucket Pipelines

Bitbucket has a built-in docker cache for the layer store, plus registry-backed Buildx caching for cross-run reuse.

Add the predefined docker cache to a step to persist the local layer store, or push a registry cache with Buildx for reuse across branches and runners.

Built-in docker cache on a step

The docker cache persists the daemon's layer store between runs of this step.

bitbucket-pipelines.yml
pipelines:
  default:
    - step:
        name: Build image
        services:
          - docker
        caches:
          - docker
        script:
          - docker build -t app:$BITBUCKET_COMMIT .

Gotchas

  • The built-in docker cache caches the local layer store; for cross-branch reuse, push a registry cache with Buildx instead.
  • Building images requires the docker service on the step, or docker build has no daemon.
  • Bitbucket caches expire after 7 days and have a size cap; very large layer stores may not fully persist.

Frequently asked questions

How do I cache Docker Layers in Bitbucket Pipelines?
Add the predefined docker cache to a step to persist the local layer store, or push a registry cache with Buildx for reuse across branches and runners.
Built-in docker cache on a step?
The docker cache persists the daemon's layer store between runs of this step.

Related guides

References

Run this faster and cheaper on Latchkey managed runners - self-healing included. Start free → 30-day trial · No credit card