Conversation
- Resolve the booth wrapper from each script's own location instead of a cwd-relative ../../../codingbooth, which no longer exists (booth), and fail with a clear message when neither wrapper is present. - Match emoji checks byte-wise (LC_ALL=C grep): Git Bash's grep 3.0 cannot match 4-byte UTF-8 emoji under a UTF-8 locale. - js-example: poll for the servers instead of a fixed 2s sleep; the tsx-compiled API server often needs longer. - zig-example: keep Zig's cache off the bind mount; renaming into a mounted .zig-cache fails with AccessDenied on Windows. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Docker Desktop writes "credsStore": "desktop" into ~/.docker/config.json. The docker-config extension seeds that file into the booth, where docker-credential-desktop does not exist, so every docker pull fails (floci and appwrite autostart never come up). dind now installs a 40-cb-dind startup hook that removes credsStore and credHelpers entries whose docker-credential-* binary is not on PATH, keeping auths and all other keys. It runs before the autostart segments and never fails the boot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A full
examples/workspaces/run-example-tests.shrun on Windows (Git Bash + Docker Desktop) had 14 of 69 examples failing. This fixes the causes that belong to the tests and to the dind setup.Example tests (
8286e644)../../../codingboothrelative to the cwd; the wrapper is nowbooth. They now resolve the wrapper from their own location (preferringbooth, falling back tocodingbooth) and fail with a clear message if neither exists.grep3.0 cannot match 4-byte UTF-8 emoji under a UTF-8 locale (-Fdoesn't help). Those checks now runLC_ALL=C grepto match bytes..zig-cachefails withAccessDenied; the Justfile setsZIG_LOCAL_CACHE_DIRto/tmp/zig-cache(overridable).dind: host-only credential helpers (
ff71ccdc)Docker Desktop writes
"credsStore": "desktop"into~/.docker/config.json. Thedocker-configextension seeds that into the booth, wheredocker-credential-desktopdoesn't exist, so everydocker pullfails — floci and appwrite autostart never come up.dind--setup.shnow installs/usr/share/startup.d/40-cb-dind--startup.sh, which removescredsStore/credHelpersentries whosedocker-credential-*binary isn't onPATH, keepingauthsand everything else. It is numbered before the autostart segments and never fails the boot. New unit test:tests/setups/test--dind-docker-config-helpers.sh.Testing
test--dind-docker-config-helpers.sh: 6/6 cases pass inside the base image (it prints SKIP on hosts withoutjq).desktop,floci/floci:latestpulled, and the S3 round-trip succeeded.Known follow-up
The Boothfile compiler emits
# syntax=docker/dockerfile:1.7(cli/src/pkg/boothfile/compiler.go). With that directive the external frontend resolvesFROMagainst the registry, ignoring--pull=falseand any local image, so locally rebuilt base images are never used by booth builds. Not addressed here.🤖 Generated with Claude Code