Drop the dead dockerd/vfs step — the job container already shares the host's Docker socket
docker-build-push / build-push (push) Successful in 5s

Verified from the actual job container logs: act_runner bind-mounts
/var/run/docker.sock into every job container unconditionally, even before
privileged mode was enabled. The previous step's nested dockerd never
actually got used.
This commit is contained in:
2026-07-06 13:50:37 -07:00
parent 4917c101b3
commit 5dad3f99dd
+4 -15
View File
@@ -11,21 +11,10 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# act_runner's job container ships docker+dockerd but doesn't start the # act_runner bind-mounts the admin host's real Docker socket into every
# daemon itself. This host's outer Docker uses overlay2, and overlay2 # job container (Docker-outside-of-Docker, not a nested daemon), so
# can't nest inside overlay2 (BuildKit mount fails with "invalid # `docker` here talks straight to the host's daemon — no separate
# argument"), so the inner daemon has to use vfs instead — slower, no # dockerd to start.
# layer dedup, but the only storage driver that actually works nested
# here.
- name: Start Docker daemon (vfs storage driver)
run: |
dockerd --storage-driver=vfs > /tmp/dockerd.log 2>&1 &
for i in $(seq 1 30); do
docker info >/dev/null 2>&1 && break
sleep 1
done
docker info >/dev/null 2>&1 || { cat /tmp/dockerd.log; exit 1; }
- name: Build and push image - name: Build and push image
env: env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}