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:
@@ -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"
|
" 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"
|
" 4. rm -rf ~/.docker/buildx/activity\n"
|
||||||
" 5. sudo systemctl start docker\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:
|
else:
|
||||||
fix = (
|
fix = (
|
||||||
"No leaked mounts (count=0) — the buildx driver state "
|
"No leaked mounts (count=0) — the buildx driver state "
|
||||||
"itself is inconsistent.\n"
|
"itself is inconsistent.\n"
|
||||||
"Recovery:\n"
|
"Recovery:\n"
|
||||||
" 1. docker buildx rm default 2>/dev/null\n"
|
" 1. rm -rf ~/.docker/buildx/activity ~/.docker/buildx/instances/*\n"
|
||||||
" 2. rm -rf ~/.docker/buildx/activity ~/.docker/buildx/instances/default\n"
|
" 2. docker buildx create --name decnet-builder --use --bootstrap\n"
|
||||||
" 3. docker buildx create --use --name default\n"
|
" (the name 'default' is reserved by Docker — pick anything else)\n"
|
||||||
" 4. docker buildx inspect --bootstrap"
|
" 3. docker buildx inspect"
|
||||||
)
|
)
|
||||||
tail = "See wiki: Troubleshooting → 'Buildx leaked mounts'."
|
tail = "See wiki: Troubleshooting → 'Buildx leaked mounts'."
|
||||||
parts = [head, fix, tail]
|
parts = [head, fix, tail]
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ class TestComposeWithRetry:
|
|||||||
)
|
)
|
||||||
with pytest.raises(subprocess.CalledProcessError) as ei:
|
with pytest.raises(subprocess.CalledProcessError) as ei:
|
||||||
deployer._compose_with_retry("up", "--build")
|
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 "umount" not in ei.value.stderr
|
||||||
assert "No leaked mounts (count=0)" in ei.value.stderr
|
assert "No leaked mounts (count=0)" in ei.value.stderr
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user