From c5436279eda2643470f5500e6fba0a2feda83f31 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 19 Apr 2026 12:21:39 -0500 Subject: [PATCH] ci: dump docker socket diagnostics when the daemon poll times out The 30s poll is enough to ride out a slow daemon startup, but not a runner where the socket isn't mounted at all. Print DOCKER_HOST, the socket stat, and the verbose `docker info` error on timeout so the next flaky run tells us whether it's a startup race or a missing mount. --- .forgejo/workflows/build.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 13be2b6a..6a1d2391 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -51,12 +51,25 @@ jobs: # `docker info` until it responds so the login/build steps # below don't race the socket and fail with "unable to # connect to docker". + sock="${DOCKER_HOST:-unix:///var/run/docker.sock}" + echo "Using DOCKER_HOST=${sock}" + for i in $(seq 1 30); do - docker info >/dev/null 2>&1 && exit 0 + if docker info >/dev/null 2>&1; then + echo "Docker daemon reachable after ${i}s" + exit 0 + fi echo "Waiting for Docker daemon... ($i/30)" sleep 1 done - echo "Docker daemon never became reachable" >&2 + + echo "Docker daemon never became reachable — diagnostics:" >&2 + echo "--- ls -l /var/run/docker.sock ---" >&2 + ls -l /var/run/docker.sock 2>&1 || true + echo "--- env | grep -i docker ---" >&2 + env | grep -i docker 2>&1 || true + echo "--- docker info (verbose) ---" >&2 + docker info 2>&1 || true exit 1 - name: Generate image tag