Problem
In src/docker-host.ts, AWF unconditionally deletes any non-unix:// DOCKER_HOST value (line 44-48):
if (dockerHost && !dockerHost.startsWith('unix://')) {
delete env.DOCKER_HOST;
}
This forces ARC users to provide a unix-socket path to the DinD daemon via a shared volume mount (e.g., unix:///dind-sock/docker.sock), even when a perfectly valid tcp://localhost:2375 endpoint exists and is the canonical way to reach the DinD sidecar in ARC RunnerScaleSet pods.
Current Behavior
- Runner pod has
DOCKER_HOST=tcp://localhost:2375 (standard ARC DinD config)
- AWF detects non-unix scheme → deletes
DOCKER_HOST
- AWF falls back to default
/var/run/docker.sock — which does not exist in the runner container
- AWF docker/compose commands fail unless user provides a unix socket workaround
Expected Behavior
AWF should support tcp:// DOCKER_HOST for its own docker/compose orchestration commands. The tcp://localhost:2375 endpoint points to the same DinD daemon that a unix socket would — both are valid Docker API endpoints.
Proposed Fix
Instead of deleting tcp:// DOCKER_HOST, AWF should:
- Use it directly for its own
docker compose calls (it works fine with tcp://)
- Only clear it from the agent container's environment if needed (the agent should talk to the host via the socket for DinD file access)
- Or: auto-detect and probe
tcp:// endpoints before falling back
Context
Workaround
In workflow frontmatter:
engine:
env:
DOCKER_HOST: unix:///dind-sock/docker.sock
With a shared volume (dind-sock) between the runner container and DinD sidecar exposing the unix socket.
Problem
In
src/docker-host.ts, AWF unconditionally deletes any non-unix://DOCKER_HOSTvalue (line 44-48):This forces ARC users to provide a unix-socket path to the DinD daemon via a shared volume mount (e.g.,
unix:///dind-sock/docker.sock), even when a perfectly validtcp://localhost:2375endpoint exists and is the canonical way to reach the DinD sidecar in ARC RunnerScaleSet pods.Current Behavior
DOCKER_HOST=tcp://localhost:2375(standard ARC DinD config)DOCKER_HOST/var/run/docker.sock— which does not exist in the runner containerExpected Behavior
AWF should support
tcp://DOCKER_HOST for its own docker/compose orchestration commands. Thetcp://localhost:2375endpoint points to the same DinD daemon that a unix socket would — both are valid Docker API endpoints.Proposed Fix
Instead of deleting tcp:// DOCKER_HOST, AWF should:
docker composecalls (it works fine with tcp://)tcp://endpoints before falling backContext
src/docker-host.tsline 44-48DOCKER_HOST: unix:///dind-sock/docker.sockvia a shared volume between runner and DinD containersWorkaround
In workflow frontmatter:
With a shared volume (
dind-sock) between the runner container and DinD sidecar exposing the unix socket.