From 89789c2863ef1ec6894a1e6492e5c77e2b2803e7 Mon Sep 17 00:00:00 2001 From: continuist Date: Sun, 29 Jun 2025 23:29:16 -0400 Subject: [PATCH] In the build stage of the CI pipeline, the backend and frontend build in their own isolated docker containers --- .forgejo/workflows/ci.yml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index b961d5f..1a76f33 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -132,23 +132,27 @@ jobs: - name: Setup DinD environment run: | - # Start DinD container using our compose file - cd /opt/${{ secrets.APP_NAME || 'sharenet' }} - docker compose -f ci-cd-compose.yml up -d + # Start DinD container for isolated Docker operations + docker run -d \ + --name ci-cd-build-dind \ + --privileged \ + -p 2375:2375 \ + -e DOCKER_TLS_CERTDIR="" \ + docker:dind # Wait for DinD to be ready echo "Waiting for DinD container to be ready..." - timeout 60 bash -c 'until docker compose -f ci-cd-compose.yml ps | grep -q "healthy"; do sleep 2; done' + timeout 60 bash -c 'until docker exec ci-cd-build-dind docker version; do sleep 2; done' # Configure Docker for Harbor registry (needed for pushing images) - docker exec ci-cd-dind sh -c 'echo "{\"insecure-registries\": [\"${{ secrets.CI_HOST }}:5000\"]}" > /etc/docker/daemon.json' - docker exec ci-cd-dind sh -c 'kill -HUP 1' + docker exec ci-cd-build-dind sh -c 'echo "{\"insecure-registries\": [\"${{ secrets.CI_HOST }}:5000\"]}" > /etc/docker/daemon.json' + docker exec ci-cd-build-dind sh -c 'kill -HUP 1' # Wait for Docker daemon to reload sleep 5 # Verify DinD is working - docker exec ci-cd-dind docker version + docker exec ci-cd-build-dind docker version - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -178,8 +182,9 @@ jobs: - name: Cleanup DinD environment if: always() run: | - cd /opt/${{ secrets.APP_NAME || 'sharenet' }} - docker compose -f ci-cd-compose.yml down + # Stop and remove DinD container + docker stop ci-cd-build-dind || true + docker rm ci-cd-build-dind || true # Job 3: Deployment - Runs directly on production runner (no DinD needed) deploy: