Let the engine socket be somewhere other than /var/run/docker.sock - #373
Merged
Conversation
Compose mounted that path into the supervisor as a fixed source. It is right on Docker, and on Podman on macOS, where `podman machine` symlinks it to the rootless socket inside the virtual machine, which is why the mount needed no change there. It is wrong on rootless Podman on Linux. The path is either absent or, with podman-docker installed, a symlink to /run/podman/podman.sock: the rootful socket, not the one running. The supervisor is handed a dead socket and every request for a Bot's computer fails with "The supervisor could not reach Docker". The source is now ENGINE_SOCKET, defaulting to the old path, so a deployment that does not set it behaves exactly as before. Verified on Ubuntu 24.04, rootless Podman 4.9.3, arm64: the smoke journey failed on that one test before the change and passes after, with the supervisor creating the Bot's computer through the rootless socket.
davidmckayv
requested review from
MikeRyanDev,
guidovizoso and
tylerslaton
as code owners
September 4, 2026 20:25
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.
Completes S1 of the OpenBot Desktop build: the stack proven on Podman on both macOS and Linux.
The defect
Compose mounted
/var/run/docker.sockinto the supervisor as a fixed source. Correct on Docker, and correct on Podman on macOS, wherepodman machinesymlinks that path to the rootless socket inside the VM. That is why the mount needed no change there.Wrong on rootless Podman on Linux. The path is either absent or, with
podman-dockerinstalled, a symlink to/run/podman/podman.sock— the rootful socket, which is not the one running:The supervisor is handed a dead socket, and every request for a Bot's computer fails:
The mount source is now
${ENGINE_SOCKET:-/var/run/docker.sock}, so nothing changes for anyone who does not set it.Verified on Linux, red then green
Ubuntu 24.04 aarch64, rootless Podman 4.9.3, real Intelligence credentials,
start.shunmodified.could not reach DockerENGINE_SOCKET=$XDG_RUNTIME_DIR/podman/podman.sockAfter:
openbot-computer-risk-analyst Up 3 seconds, and the navigate test took 3.5s because it waited for the computer to be healthy rather than racing it — the fix from #372 doing its job on a second engine.S1 is now answered on both platforms
macOS, Podman 6.1.1,
applehv: 5 pass, 0 fail. Linux, Podman 4.9.3, native rootless: 5 pass, 0 fail. On both, compose came up, the supervisor held the rootless socket, it created a per-Bot computer through it, and a harness answered a live AG-UI run through the gateway with the trail recording it.What the two platforms disagree about
Worth stating, because the build doc treats them as one row:
/var/run/docker.sockENGINE_SOCKETneededlabel=disablerequiredlabel=disableis a no-op and harmlessformat:checkandlintclean;docker compose configvalid.