The DinD service approach was crashing the job (exit 2) because the
Forgejo runner on this host does not honour the `options: --privileged`
field for service containers, so dockerd inside DinD could never start.
Root cause of the broader CI failure: dagger-stunnel.service stopped
cleanly (exit 0 → no auto-restart), leaving port 8774 without a
listener. A plain socat TCP proxy (8774→1774) is now running on the
host as a stop-gap until stunnel is restarted.
Changes:
- Remove the docker:27-dind service container from ci.yml entirely
- Simplify "Locate Docker daemon" step — warn instead of failing when
Docker is unavailable (job fails later at the Dagger step with a
clearer message)
- Add plain-TCP path to setup_dagger_remote.sh: after a successful nc
probe, try `dagger version` directly over the target host:port before
falling back to the TLS stunnel setup; this works with both the socat
plain-TCP proxy and any future plain-TCP Dagger engine exposure
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>