From bdcb88fbc0f338d09d08b87e36ccf163c625b885 Mon Sep 17 00:00:00 2001 From: yaojingxi <23722032@bjtu.edu.cn> Date: Fri, 13 Feb 2026 11:51:46 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Nacos=E5=AE=B9=E5=99=A8=E4=B8=8D=E7=A8=B3?= =?UTF-8?q?=E5=AE=9A=EF=BC=8C=E7=BB=9F=E4=B8=80=E9=85=8D=E7=BD=AE=E8=AF=95?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b90040e..c2032e7 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -63,20 +63,13 @@ jobs: services: nacos: - image: nacos/nacos-server:v2.2.3 + image: nacos/nacos-server:v2.3.1-slim env: MODE: standalone AUTH_ENABLE: false ports: - 8848:8848 - 9848:9848 - # Wait for Nacos to be fully ready - options: >- - --name nacos-server - --health-cmd "curl -f http://localhost:8848/nacos/v1/console/health/readiness" - --health-interval 10s - --health-timeout 5s - --health-retries 10 steps: - uses: actions/checkout@v4 From 0935e60a1ff8e3fc30319e34c4c0c9dc8dcc5370 Mon Sep 17 00:00:00 2001 From: yaojingxi <23722032@bjtu.edu.cn> Date: Fri, 13 Feb 2026 13:36:01 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=AE=B9=E5=99=A8=E8=B6=85=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=BA=94=E8=AF=A5=E6=98=AFNacos=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=A4=AA=E6=85=A2=E7=9A=84=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c2032e7..555de33 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -105,12 +105,22 @@ jobs: - name: Wait For Nacos Ports run: | set -euo pipefail - echo "Waiting for Nacos HTTP API on 8848..." - timeout 60s bash -c 'until curl -sf http://localhost:8848/nacos/v1/console/health/readiness > /dev/null; do sleep 1; done' + echo "Waiting for Nacos HTTP port on 8848..." + timeout 180s bash -c 'until echo > /dev/tcp/localhost/8848; do sleep 1; done' echo "Waiting for Nacos gRPC port on 9848..." - timeout 60s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' + timeout 180s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' + # Give Nacos a short warm-up window before provider registration. + sleep 8 echo "Nacos 8848/9848 are both reachable." + - name: Dump Nacos Service Logs (On Failure) + if: failure() + run: | + set +e + echo "Nacos service container id: ${{ job.services.nacos.id }}" + docker ps -a + docker logs "${{ job.services.nacos.id }}" | tail -n 300 + - name: Start RPC Provider (Java Server) run: | set -euo pipefail From 74bb09feba382a0a0292ec82a9222b1baa95fcc6 Mon Sep 17 00:00:00 2001 From: yaojingxi <23722032@bjtu.edu.cn> Date: Fri, 13 Feb 2026 13:50:12 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=81=A5=E5=BA=B7?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 555de33..16bf077 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -66,10 +66,19 @@ jobs: image: nacos/nacos-server:v2.3.1-slim env: MODE: standalone - AUTH_ENABLE: false + NACOS_AUTH_ENABLE: "false" + JVM_XMS: 256m + JVM_XMX: 256m + JVM_XMN: 128m ports: - 8848:8848 - 9848:9848 + options: >- + --health-cmd "curl -f http://localhost:8848/nacos/v1/console/health/readiness || exit 1" + --health-interval 10s + --health-timeout 5s + --health-retries 20 + --health-start-period 30s steps: - uses: actions/checkout@v4 @@ -105,12 +114,17 @@ jobs: - name: Wait For Nacos Ports run: | set -euo pipefail + echo "Checking Nacos container status..." + docker ps --filter "name=nacos" --format "table {{.ID}}\t{{.Status}}\t{{.Ports}}" echo "Waiting for Nacos HTTP port on 8848..." timeout 180s bash -c 'until echo > /dev/tcp/localhost/8848; do sleep 1; done' echo "Waiting for Nacos gRPC port on 9848..." timeout 180s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' - # Give Nacos a short warm-up window before provider registration. - sleep 8 + # 验证 Nacos API 真正可用 + echo "Verifying Nacos API readiness..." + timeout 60s bash -c 'until curl -sf http://localhost:8848/nacos/v1/console/health/readiness; do sleep 2; done' + echo "" + echo "Nacos is fully ready." echo "Nacos 8848/9848 are both reachable." - name: Dump Nacos Service Logs (On Failure) From eeffc28408793dfb6c3194431b6c3fc83c4b0e3e Mon Sep 17 00:00:00 2001 From: yaojingxi <23722032@bjtu.edu.cn> Date: Fri, 13 Feb 2026 14:18:43 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=86=8D=E8=AF=95=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=EF=BC=8C=E6=88=91=E7=9C=9F=E6=98=AF=E6=9C=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b1c6a6d..7042846 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -73,12 +73,6 @@ jobs: ports: - 8848:8848 - 9848:9848 - options: >- - --name nacos-server - --health-cmd "curl -f http://localhost:8848/nacos/v1/console/health/readiness" - --health-interval 10s - --health-timeout 5s - --health-retries 10 steps: - uses: actions/checkout@v4 @@ -114,12 +108,21 @@ jobs: - name: Wait For Nacos Ports run: | set -euo pipefail - echo "Waiting for Nacos HTTP API on 8848..." - timeout 60s bash -c 'until curl -sf http://localhost:8848/nacos/v1/console/health/readiness > /dev/null; do sleep 1; done' + echo "Waiting for Nacos HTTP port on 8848..." + timeout 180s bash -c 'until echo > /dev/tcp/localhost/8848; do sleep 1; done' echo "Waiting for Nacos gRPC port on 9848..." - timeout 60s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' + timeout 180s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' + sleep 8 echo "Nacos 8848/9848 are both reachable." + - name: Dump Nacos Service Logs (On Failure) + if: failure() + run: | + set +e + echo "Nacos service container id: ${{ job.services.nacos.id }}" + docker ps -a + docker logs "${{ job.services.nacos.id }}" | tail -n 300 + - name: Start RPC Provider (Java Server) run: | set -euo pipefail From 179f7f2e1c6ff97d826ae9b214454483e7718634 Mon Sep 17 00:00:00 2001 From: yaojingxi <23722032@bjtu.edu.cn> Date: Fri, 13 Feb 2026 14:34:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=86=8D=E8=AF=95=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=EF=BC=8C=E6=88=91=E7=9C=9F=E6=98=AF=E6=9C=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 69 ++++++++++++++++++++++++++----------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 7042846..9811945 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -60,19 +60,6 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 needs: [unit-tests, go-client-check] - - services: - nacos: - image: nacos/nacos-server:v2.3.1-slim - env: - MODE: standalone - NACOS_AUTH_ENABLE: "false" - JVM_XMS: 256m - JVM_XMX: 256m - JVM_XMN: 128m - ports: - - 8848:8848 - - 9848:9848 steps: - uses: actions/checkout@v4 @@ -105,23 +92,63 @@ jobs: set -euo pipefail mvn -B -ntp -DskipTests clean package + - name: Start Nacos Container + run: | + set -euo pipefail + docker rm -f nacos-server >/dev/null 2>&1 || true + docker run -d \ + --name nacos-server \ + -e MODE=standalone \ + -e AUTH_ENABLE=false \ + -e NACOS_AUTH_ENABLE=false \ + -p 8848:8848 \ + -p 9848:9848 \ + nacos/nacos-server:v2.3.1-slim + docker ps --filter "name=nacos-server" + - name: Wait For Nacos Ports run: | set -euo pipefail - echo "Waiting for Nacos HTTP port on 8848..." - timeout 180s bash -c 'until echo > /dev/tcp/localhost/8848; do sleep 1; done' - echo "Waiting for Nacos gRPC port on 9848..." - timeout 180s bash -c 'until echo > /dev/tcp/localhost/9848; do sleep 1; done' - sleep 8 - echo "Nacos 8848/9848 are both reachable." + NACOS_ID="$(docker ps -aqf 'name=^nacos-server$')" + if [[ -z "${NACOS_ID}" ]]; then + echo "Nacos container not found." + docker ps -a + exit 1 + fi + echo "Nacos service container id: ${NACOS_ID}" + + for i in {1..90}; do + STATUS=$(docker inspect -f '{{.State.Status}}' "${NACOS_ID}") + HEALTH=$(docker inspect -f '{{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}}' "${NACOS_ID}") + echo "[${i}/90] nacos status=${STATUS}, health=${HEALTH}" + + if [[ "${STATUS}" != "running" ]]; then + echo "Nacos container is not running. Dumping logs..." + docker logs "${NACOS_ID}" | tail -n 300 || true + exit 1 + fi + + if bash -c 'echo > /dev/tcp/localhost/8848' 2>/dev/null \ + && bash -c 'echo > /dev/tcp/localhost/9848' 2>/dev/null; then + echo "Nacos ports 8848/9848 are reachable." + sleep 8 + exit 0 + fi + + sleep 2 + done + + echo "Timed out waiting for Nacos ports 8848/9848." + docker logs "${NACOS_ID}" | tail -n 300 || true + exit 1 - name: Dump Nacos Service Logs (On Failure) if: failure() run: | set +e - echo "Nacos service container id: ${{ job.services.nacos.id }}" + echo "Nacos service container id: $(docker ps -aqf 'name=^nacos-server$')" docker ps -a - docker logs "${{ job.services.nacos.id }}" | tail -n 300 + docker logs nacos-server | tail -n 300 - name: Start RPC Provider (Java Server) run: |