ERROR: cache export feature is currently not supported for docker driver
ID: cicd/docker-buildx-cache-miss
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| any | active | — | — | — |
Root Cause
Docker buildx cache-to/cache-from options fail because the default 'docker' driver does not support cache export. The docker-container or remote driver must be used to enable buildx advanced caching features such as GitHub Actions cache backend or registry-based cache.
genericWorkarounds
-
95% success Use docker/setup-buildx-action to create a buildx builder with the docker-container driver
Add 'uses: docker/setup-buildx-action@v3' as a step before docker/build-push-action. This creates a new builder instance using the docker-container driver which supports all cache export features. Then use cache-to: type=gha and cache-from: type=gha in the build-push-action.
-
88% success Use inline cache with registry-based caching as a simpler alternative
After setting up buildx with docker-container driver, use 'cache-from: type=registry,ref=ghcr.io/org/repo:buildcache' and 'cache-to: type=inline' in docker/build-push-action. Inline cache embeds cache metadata in the image itself, which is simpler but only caches the final stage.
-
92% success Use GitHub Actions cache backend (type=gha) for full multi-stage layer caching
With docker/setup-buildx-action configured, set 'cache-from: type=gha' and 'cache-to: type=gha,mode=max' in docker/build-push-action. The 'mode=max' ensures all layers (not just final stage) are cached. This uses the GitHub Actions cache storage automatically.
Dead Ends
Common approaches that don't work:
-
Add --cache-to and --cache-from flags to a regular docker build command
99% fail
The classic 'docker build' command does not support buildx cache export/import flags. These flags require 'docker buildx build' with a compatible driver, not the legacy builder.
-
Set DOCKER_BUILDKIT=1 and assume cache export will work with the default driver
95% fail
DOCKER_BUILDKIT=1 enables BuildKit as the build engine but still uses the 'docker' driver, which does not support cache export. The driver type is what matters, not whether BuildKit is enabled.
-
Attempt to use --cache-to=type=local without switching the buildx driver
99% fail
All cache-to backends (local, registry, gha, inline) are blocked when using the docker driver. The error occurs before any cache type logic is evaluated because the driver itself lacks the capability.