diff --git a/build-and-push/action.yaml b/build-and-push/action.yaml index aabb5b9..ed6a169 100644 --- a/build-and-push/action.yaml +++ b/build-and-push/action.yaml @@ -78,20 +78,20 @@ runs: run: | # Never set the DOCKER_HOST env var to the builder hostname: a bare # value is treated as tcp://host:2375 and, more importantly, DOCKER_HOST - # *overrides* the active docker context — which is exactly what broke - # the previous version (it tried tcp://docker-build.haven:2375 instead - # of the SSH context). We drive everything through a context instead. + # *overrides* the active docker context/builder. Keep it unset so buildx + # talks to the SSH endpoint we specify below. unset DOCKER_HOST || true - docker context rm -f remote-builder 2>/dev/null || true - docker context create remote-builder \ - --docker "host=ssh://${BUILDER_USER}@${BUILDER_HOST}" - - # build-push-action's `builder: remote-builder` needs a *buildx builder - # instance* named remote-builder, not just a context. Create it from the - # SSH context so it resolves to the remote engine over SSH. + # Create the buildx builder directly from the SSH endpoint. We do NOT + # create a docker context of the same name first: buildx refuses to + # create a builder instance whose name collides with an existing + # context ("instance name already exists as context builder"). docker buildx rm -f remote-builder 2>/dev/null || true - docker buildx create --name remote-builder --use remote-builder + docker context rm -f remote-builder 2>/dev/null || true + docker buildx create \ + --name remote-builder \ + --use \ + "ssh://${BUILDER_USER}@${BUILDER_HOST}" docker buildx inspect --bootstrap - name: Generate tags list