Skip to content

fix(docker-env): retire stale tecnativa wording from the proxy error and Compose comment - #97

Merged
tyler-rich merged 1 commit into
devfrom
claude/docker-proxy-error-messages-x36vgw
Jul 26, 2026
Merged

fix(docker-env): retire stale tecnativa wording from the proxy error and Compose comment#97
tyler-rich merged 1 commit into
devfrom
claude/docker-proxy-error-messages-x36vgw

Conversation

@tyler-rich

@tyler-rich tyler-rich commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Clears the two follow-ups the 2026-07-26 socket-proxy entry deferred as out of its docs-only scope.

What changed

backend/app/core/docker_proxy.py — the non-200 error detail advised checking that the proxy is "read-only with IMAGES=1". That is a tecnativa env var that has not existed in this stack since the wollomatic migration (#89), and it prints in exactly the 403 case the README now teaches operators to diagnose — so it was pointing them at a knob that isn't there. It now names the real causes: a non-allowlisted path (-allowGET permits only /images/json and /v1.NN/images/json), a non-GET method (405), or the -allowfrom source check rejecting a client that isn't the scrye container — with the note that the proxy's own log distinguishes them (blocked request … forbidden IP), and a pointer to the README's § Optional sidecars rather than a restatement of it. It stays an error detail, not documentation.

docker/docker-compose.yml — the DOCKER_GID comment called 999 "the Debian/Ubuntu default … used here as a fallback only," the wording the README corrected when the live run measured 989. It now matches the README: 999 is a placeholder, not a safe default; 989 on the host this was last verified against; stat -c '%g' /var/run/docker.sock remains the instruction. The adjacent failure-mode sentence ("logs a socket permission error on start") was corrected in the same comment for the same reason the README's was — the real behavior is a crash loop under restart: unless-stopped (STATUS Restarting, never Exited).

backend/tests/test_docker_proxy.py — new regression guard: drives list_images() through an httpx.MockTransport returning 403 and asserts the message carries -allowGET, -allowfrom, and forbidden IP and does not carry IMAGES=1. No existing test asserted on the old string, so nothing needed updating.

Not changed

The -allowGET pattern, the proxy's option set, and the ${DOCKER_GID:-999} value itself are untouched. No schema, API-contract, security-model, job-model, or auth change. No CHANGELOG.md entry — the Unreleased docker-env action-required note already carries the corrected 999/989 guidance and the crash-loop description.

See docs/ARCHIVE.md § Deviations for the dated entry retiring both deferred items.

Verification

Backend ruff + black --check clean; full pytest suite green (580 passed, 3 skipped).

…and Compose comment

The non-200 detail in docker_proxy.list_images() advised checking that the proxy
is "read-only with IMAGES=1" — a tecnativa env var that has not existed since the
wollomatic migration (#89), printed in exactly the 403 case the README teaches
operators to diagnose. It now names the real causes: a non-allowlisted path
(-allowGET permits only /images/json and /v1.NN/images/json), a non-GET method,
or the -allowfrom source check rejecting a non-scrye client, with the note that
the proxy's log distinguishes them, and a pointer to the README rather than a
restatement of it.

The docker-compose.yml DOCKER_GID comment called 999 "the Debian/Ubuntu default";
it now matches the README's corrected wording (a placeholder, not a safe default;
989 on the host this was verified against) and describes the wrong-GID failure as
the crash loop it actually is. The stat -c '%g' derivation remains the instruction
and the ${DOCKER_GID:-999} value is unchanged.

Adds a regression test driving the 403 path through httpx.MockTransport. No
existing test asserted on the old string.

See docs/ARCHIVE.md § Deviations for the dated entry retiring both follow-ups.
@tyler-rich
tyler-rich merged commit cefcd1b into dev Jul 26, 2026
4 checks passed
@tyler-rich
tyler-rich deleted the claude/docker-proxy-error-messages-x36vgw branch July 26, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant