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
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:
@@ -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 }}
|
||||||
|
|||||||
Reference in New Issue
Block a user