diff --git a/decnet/engine/deployer.py b/decnet/engine/deployer.py index e4c6b4d0..bebe5d3d 100644 --- a/decnet/engine/deployer.py +++ b/decnet/engine/deployer.py @@ -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] diff --git a/tests/fleet/test_deployer.py b/tests/fleet/test_deployer.py index 8cc7cd5e..c70cbc2e 100644 --- a/tests/fleet/test_deployer.py +++ b/tests/fleet/test_deployer.py @@ -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