fix(engine/buildx): recipe used reserved 'default' builder name

'docker buildx create --name default' errors with 'default is a
reserved name and cannot be used to identify builder instance'.
The bundled builder always exists under that name; the recipe
should switch to it (buildx use default), not try to recreate it.

For the count==0 driver-rebuild branch, the new builder needs a
non-reserved name — using 'decnet-builder' as the example.
This commit is contained in:
2026-04-24 22:02:20 -04:00
parent 40a31d8bc7
commit 257624e6a7
2 changed files with 6 additions and 6 deletions

View File

@@ -203,17 +203,17 @@ def _buildx_recovery_hint(*, leaked_mounts: int, original_stderr: str = "") -> s
" 3. for m in $(mount | awk '$3 ~ /buildkit-mount/ {print $3}'); do sudo umount -l \"$m\"; done\n"
" 4. rm -rf ~/.docker/buildx/activity\n"
" 5. sudo systemctl start docker\n"
" 6. docker buildx create --use --name default && docker buildx inspect --bootstrap"
" 6. docker buildx use default # bundled builder is reserved-named; switch to it"
)
else:
fix = (
"No leaked mounts (count=0) — the buildx driver state "
"itself is inconsistent.\n"
"Recovery:\n"
" 1. docker buildx rm default 2>/dev/null\n"
" 2. rm -rf ~/.docker/buildx/activity ~/.docker/buildx/instances/default\n"
" 3. docker buildx create --use --name default\n"
" 4. docker buildx inspect --bootstrap"
" 1. rm -rf ~/.docker/buildx/activity ~/.docker/buildx/instances/*\n"
" 2. docker buildx create --name decnet-builder --use --bootstrap\n"
" (the name 'default' is reserved by Docker — pick anything else)\n"
" 3. docker buildx inspect"
)
tail = "See wiki: Troubleshooting → 'Buildx leaked mounts'."
parts = [head, fix, tail]

View File

@@ -176,7 +176,7 @@ class TestComposeWithRetry:
)
with pytest.raises(subprocess.CalledProcessError) as ei:
deployer._compose_with_retry("up", "--build")
assert "buildx create --use" in ei.value.stderr
assert "buildx create --name decnet-builder" in ei.value.stderr
assert "umount" not in ei.value.stderr
assert "No leaked mounts (count=0)" in ei.value.stderr