From 0b836f7e2d9d26cd5b2802ef6bd3a60897939fc8 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 11 Mar 2026 18:31:19 +0100 Subject: [PATCH] fix(ci): Run docker compose from helper container with deploy dir mounted The runner container has Docker socket but no host filesystem access. docker compose needs to read YAML files, so run build+deploy inside a helper container that has both Docker socket and the deploy dir mounted. Co-Authored-By: Claude Opus 4.6 --- .gitea/workflows/ci.yaml | 61 +++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 1528538..a92bb2c 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -231,39 +231,42 @@ jobs: fi " - # 3. Docker Images bauen (docker compose liest vom Host-Dateisystem) + # 3. Build + Deploy via Helper-Container mit Docker-Socket + Deploy-Dir + # docker compose muss die YAML-Dateien lesen koennen, daher + # alles in einem Container mit beiden Mounts ausfuehren. echo "" - echo "=== Building Docker Images ===" - docker compose -f "${DEPLOY_DIR}/docker-compose.yml" \ - -f "${DEPLOY_DIR}/docker-compose.hetzner.yml" \ - --project-directory "${DEPLOY_DIR}" \ - build --parallel \ - admin-compliance \ - backend-compliance \ - ai-compliance-sdk \ - developer-portal + echo "=== Building + Deploying ===" + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v "${DEPLOY_DIR}:${DEPLOY_DIR}" \ + -w "${DEPLOY_DIR}" \ + docker:27-cli \ + sh -c " + COMPOSE_FILES='-f docker-compose.yml -f docker-compose.hetzner.yml' - # 4. Container neu starten - echo "" - echo "=== Deploying ===" - docker compose -f "${DEPLOY_DIR}/docker-compose.yml" \ - -f "${DEPLOY_DIR}/docker-compose.hetzner.yml" \ - --project-directory "${DEPLOY_DIR}" \ - up -d --remove-orphans \ - admin-compliance \ - backend-compliance \ - ai-compliance-sdk \ - developer-portal + echo '=== Building Docker Images ===' + docker compose \${COMPOSE_FILES} build --parallel \ + admin-compliance \ + backend-compliance \ + ai-compliance-sdk \ + developer-portal - # 5. Health Checks - echo "" - echo "=== Health Checks ===" - sleep 10 + echo '' + echo '=== Starting containers ===' + docker compose \${COMPOSE_FILES} up -d --remove-orphans \ + admin-compliance \ + backend-compliance \ + ai-compliance-sdk \ + developer-portal - for svc in bp-compliance-admin bp-compliance-backend bp-compliance-ai-sdk bp-compliance-developer-portal; do - STATUS=$(docker inspect --format='{{.State.Status}}' "${svc}" 2>/dev/null || echo "not found") - echo "${svc}: ${STATUS}" - done + echo '' + echo '=== Health Checks ===' + sleep 10 + for svc in bp-compliance-admin bp-compliance-backend bp-compliance-ai-sdk bp-compliance-developer-portal; do + STATUS=\$(docker inspect --format='{{.State.Status}}' \"\${svc}\" 2>/dev/null || echo 'not found') + echo \"\${svc}: \${STATUS}\" + done + " echo "" echo "=== Deploy abgeschlossen: ${SHORT_SHA} ==="