From b41992ec0a9b8c67363f3c33065fe0a500b7f881 Mon Sep 17 00:00:00 2001 From: DevOps Date: Tue, 9 Jun 2026 20:33:38 +0200 Subject: [PATCH] fix: deploy via Docker-in-Docker with host-mounted nexus path Runner job containers don't have the /workspace/nexus mount. - Sync code to host path using a docker run helper (preserves .env) - Build & deploy from host path using docker:cli image - Health check with retry loop for slow container startup --- .gitea/workflows/deploy.yaml | 52 +++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index bf27ce2..5caea63 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -70,6 +70,20 @@ jobs: git push "https://devops:${{ secrets.GIT_TOKEN }}@git.noveria.net/bao/nexus.git" HEAD:main --tags echo "✅ Version bumped to v${NEW_VERSION}" + - name: Sync code to host deploy path + run: | + docker run --rm \ + -v "${{ gitea.workspace }}:/src:ro" \ + -v /opt/openclaw/data/openclaw/workspace/nexus:/dest \ + alpine:latest \ + sh -c " + cd /src && \ + find . -mindepth 1 -maxdepth 1 \ + ! -name .git \ + ! -name .env \ + -exec cp -a {} /dest/ \; + " + - name: Set up Docker Buildx run: docker buildx create --use 2>/dev/null || true @@ -80,23 +94,37 @@ jobs: BUILD_ARGS="--no-cache" fi - if [ -n "${{ inputs.service }}" ]; then - echo "🚀 Deploying service: ${{ inputs.service }}" - docker compose build $BUILD_ARGS ${{ inputs.service }} - docker compose up -d --force-recreate ${{ inputs.service }} - else - echo "🚀 Deploying all services" - docker compose build $BUILD_ARGS - docker compose up -d --force-recreate - fi + docker run --rm \ + -v /opt/openclaw/data/openclaw/workspace/nexus:/workspace/nexus \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -w /workspace/nexus \ + docker:cli \ + sh -c " + set -e + if [ -n '${{ inputs.service }}' ]; then + echo '🚀 Deploying service: ${{ inputs.service }}' + docker compose build $BUILD_ARGS \${{ inputs.service }} + docker compose up -d --force-recreate \${{ inputs.service }} + else + echo '🚀 Deploying all services' + docker compose build $BUILD_ARGS + docker compose up -d --force-recreate + fi + " - name: Health Check run: | sleep 5 echo "🏥 Health check..." - curl -sf --max-time 30 --retry 3 --retry-delay 5 https://nexus.noveria.net/health || echo "⚠️ Health check failed (may need more time)" - echo "" - docker compose ps + for i in 1 2 3 4 5 6; do + if curl -sf --max-time 10 https://nexus.noveria.net/health; then + echo "" + echo "✅ Health check passed" + break + fi + echo "⏳ Retry $i/6..." + sleep 5 + done - name: Verify (smoke test) run: |