-
Type:
Suggestion
-
Resolution: Unresolved
-
Component/s: Pipelines - YAML Configuration
-
None
-
1
Using Bitbucket Pipelines Runtime v3 with a BYO Docker-in-Docker (DinD) image (docker:29-dind) need to use the containerd image store ({}containerd-snapshotter{-}{}) which requires removing or replacing the hardcoded -storage-driver=overlay2 daemon argument.
The Runtime v3 documentation states that the following DinD args are hardcoded and cannot be overridden:
--storage-driver=overlay2 --registry-mirror http://${DOCKER_REGISTRY_MIRROR_HOST}:5000 --insecure-registry ${DOCKER_REGISTRY_MIRROR_HOST}:5000 --tls=false --log-level info
The --storage-driver=overlay2 arg explicitly disables the containerd image store, confirmed by the daemon startup log:
containerd-snapshotter=false storage-driver=overlay2 version=29.3.0
Why We Need This
The containerd image store (containerd-snapshotter=true) is required for:
- Native multi-platform image building with docker buildx
- OCI image format support
- Better layer deduplication and performance
- Compatibility with tools that expect containerd's image store
Please allow users to override the DinD daemon args in Runtime v3, via one of these approaches:
- Expose a docker-daemon-args property in the definitions.services.docker section of bitbucket-pipelines.yml, or
- Add a dedicated containerd-snapshotter: true option to the docker service definition, or
- Remove --storage-driver=overlay2 from the default args when using Docker 25+ (which supports the containerd image store natively)
Current Workaround
None available on Bitbucket Cloud hosted runners. Self-hosted runners are the only option today.