Harness Replays: cf-proxy bind-mount fails on act runner (DinD path-translation) #55
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
After the Class G #168 + #173 + harness-replays pre-clone fix (#50),
harness-replays.ymlno longer fails on auth or docker-build COPY. It now fails further down the pipeline when startingcf-proxy:(Run #1071 job 1, line 654.)
Root cause
Gitea Actions self-hosted runner uses
actwhich exposes the checkout at/workspace/<owner>/<repo>inside the runner container.docker composein the harness then asks the host docker daemon to bind-mount that path. The host has no such path → docker daemon attempts to auto-create a directory at the source → mount destination is a file (/etc/nginx/nginx.conf) but source is a directory → "not a directory" error.Evidence harness has never been green
Reviewing 30 historical
harness-replays.ymlruns on this Gitea repo: 29 Failure, 1 Success. The 1 Success (run #683) was a no-op pass (paths-filter excluded the commit —Run Main No-op pass (paths filter excluded this commit)on line 32). The harness boot path has never actually executed end-to-end on Gitea Actions.Possible fixes (need design)
DinD sidecar: configure act_runner with
containerOptions: --privileged -v /var/run/docker.sock:/var/run/docker.sockand use${{ runner.workspace }}translation. Per saved memoryfeedback_act_runner_github_server_url, runner config edits are well-trodden.Bake nginx.conf into the cf-proxy image: change
tests/harness/cf-proxy/DockerfiletoCOPY nginx.conf /etc/nginx/nginx.conf, drop the bind-mount in compose.yml. Pure file → no path-translation issue. Tradeoff: slower iteration on nginx.conf changes (need rebuild).Inline nginx.conf via configMap-style env: build with
envsubst < nginx.conf.template. Heavier change.Set
DOCKER_HOST=tcp://docker:2375+ sidecar docker daemon scoped to act runner.Recommend (2) as the smallest change — it makes the harness self-contained and removes the runner-specific assumption.
Pre-existing nature
This blocker would have hit even with sister #173s full fix in place — proven by run #892 on main getting only as far as the COPY step (because main has no pre-clone step in harness-replays.yml). Once #50 lands, every subsequent harness run hits this cf-proxy issue immediately.
Refs
feedback_act_runner_github_server_url(related runner-config gotchas)