From 141956b7273e20aa170bce0ddda98c44d02f6c1e Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Mon, 20 Apr 2026 08:41:39 -0500 Subject: [PATCH] ci(grid-rs): surface docker daemon diagnostics on wait-step failure Mirrors the verbose wait-for-docker block from build.yaml so future "failed to connect to docker" failures print socket permissions, docker-related env vars, and full `docker info` output instead of a single unhelpful line. --- .forgejo/workflows/build-grid-rs.yaml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/build-grid-rs.yaml b/.forgejo/workflows/build-grid-rs.yaml index addfa2c5..5812d876 100644 --- a/.forgejo/workflows/build-grid-rs.yaml +++ b/.forgejo/workflows/build-grid-rs.yaml @@ -49,14 +49,31 @@ jobs: - name: Wait for Docker daemon run: | + # act_runner mounts the host docker socket into the job, but + # the daemon side sometimes takes a moment to answer. Poll + # `docker info` until it responds so the login/build steps + # below don't race the socket and fail with "unable to + # connect to docker". Mirrors the diagnostics in build.yaml + # so failures surface *why* the socket is unreachable. + sock="${DOCKER_HOST:-unix:///var/run/docker.sock}" + echo "Using DOCKER_HOST=${sock}" + for i in $(seq 1 30); do 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