From 85f2f9d2d4433b27e7d56dfa73eb6e8e2f005026 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 23 Oct 2026 18:37:36 -0700 Subject: [PATCH] ci: make docker registry and compose steps idempotent on self-hosted runners (#12012) The registry container is started with --restart=always but never removed during teardown, so once a machine runs the job, every later run on that machine fails with a container name conflict. Reuse the running container when it exists and recreate it only when missing or broken. Some self-hosted runners (e.g. seaweedfs-server03) also lack the Docker Compose plugin, so install it via docker/setup-compose-action, which is a no-op where compose is already available. --- .github/workflows/pjdfstest.yml | 9 ++++++++- .github/workflows/samba-integration.yml | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pjdfstest.yml b/.github/workflows/pjdfstest.yml index 878f787f4f..a88d19d48a 100644 --- a/.github/workflows/pjdfstest.yml +++ b/.github/workflows/pjdfstest.yml @@ -41,13 +41,20 @@ jobs: cache: ${{ runner.environment == 'github-hosted' }} - name: Start local Docker registry - run: docker run -d --restart=always -p 5000:5000 --name registry registry:2 + run: | + if ! docker start registry 2>/dev/null; then + docker rm -f registry >/dev/null 2>&1 || true + docker run -d --restart=always -p 5000:5000 --name registry registry:2 + fi - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 with: driver-opts: network=host + - name: Set up Docker Compose + uses: docker/setup-compose-action@v2 + - name: Build weed race binary run: | cd docker diff --git a/.github/workflows/samba-integration.yml b/.github/workflows/samba-integration.yml index f37020090a..94b9d670d3 100644 --- a/.github/workflows/samba-integration.yml +++ b/.github/workflows/samba-integration.yml @@ -43,13 +43,20 @@ jobs: cache: ${{ runner.environment == 'github-hosted' }} - name: Start local Docker registry - run: docker run -d --restart=always -p 5000:5000 --name registry registry:2 + run: | + if ! docker start registry 2>/dev/null; then + docker rm -f registry >/dev/null 2>&1 || true + docker run -d --restart=always -p 5000:5000 --name registry registry:2 + fi - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 with: driver-opts: network=host + - name: Set up Docker Compose + uses: docker/setup-compose-action@v2 + - name: Build weed race binary run: | cd docker