From d606ea669df2561c9ee928b3be0958461350ac6e Mon Sep 17 00:00:00 2001 From: Ondrej Belusky Date: Tue, 1 Sep 2026 13:49:27 +0200 Subject: [PATCH] =?UTF-8?q?revert:=20restore=20loopback=20endpoint=20?= =?UTF-8?q?=E2=80=94=20executor=20really=20runs=20network=3Dhost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Job 9024 runner log proves the executor container is created with network="host", where docker DNS names do not resolve, so tcp://: cannot connect. Restore tcp://127.0.0.1: plus the loopback port publish. The failure #4 build-step timeout has a different (still investigated) cause. --- action.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/action.yml b/action.yml index 984c118..064a189 100644 --- a/action.yml +++ b/action.yml @@ -41,11 +41,9 @@ runs: # If it is already running with the right config, keep it (warm cache). if [ "$(docker inspect -f '{{.State.Running}}' ${{ inputs.container_name }} 2>/dev/null)" != "true" ]; then docker rm -f ${{ inputs.container_name }} >/dev/null 2>&1 || true - # NOTE: no -p publish needed — the job executor itself runs on the - # same docker network, so it reaches buildkitd by container DNS name. - # (127.0.0.1 inside the executor is its own loopback, NOT the host's.) docker run -d --name ${{ inputs.container_name }} --privileged \ --network ${{ inputs.network }} \ + -p 127.0.0.1:${{ inputs.port }}:${{ inputs.port }} \ --restart unless-stopped \ --label com.centurylinklabs.watchtower.monitor-only=${{ inputs.monitor_only }} \ --label dockhand.notify=${{ inputs.dockhand_notify }} \ @@ -56,7 +54,10 @@ runs: uses: docker/setup-buildx-action@v4 with: driver: remote - endpoint: tcp://${{ inputs.container_name }}:${{ inputs.port }} + # The act_runner executor runs with network=host (confirmed in runner + # logs), so it reaches buildkitd via the host-published loopback port. + # Docker DNS names are NOT resolvable from the host namespace. + endpoint: tcp://127.0.0.1:${{ inputs.port }} - name: Stop BuildKit (idle cleanup) if: ${{ inputs.cleanup == 'true' && always() }}