diff --git a/.forgejo/workflows/lint-and-build.yml b/.forgejo/workflows/lint-and-build.yml index e77c365..9d2ee27 100644 --- a/.forgejo/workflows/lint-and-build.yml +++ b/.forgejo/workflows/lint-and-build.yml @@ -95,49 +95,45 @@ jobs: run: cargo build --release --verbose # ============================================================================== - # Job 4: Docker Build with Buildx - Using runs-on: docker without container + # Job 4: Docker Build - Try accessing host Docker via DOCKER_HOST # ============================================================================== docker-build: runs-on: docker - # No container - should have direct Docker access needs: [build] steps: - name: Checkout code uses: actions/checkout@v4 - - name: Verify Docker is available + - name: Try accessing Docker run: | - docker version - docker info + echo "Checking Docker availability..." + # Try various Docker host options + if docker info >/dev/null 2>&1; then + echo "✅ Docker accessible via default socket" + elif docker -H unix:///var/run/docker.sock info >/dev/null 2>&1; then + echo "✅ Docker accessible via /var/run/docker.sock" + export DOCKER_HOST=unix:///var/run/docker.sock + elif docker -H tcp://127.0.0.1:2375 info >/dev/null 2>&1; then + echo "✅ Docker accessible via TCP localhost" + export DOCKER_HOST=tcp://127.0.0.1:2375 + elif docker -H tcp://172.17.0.1:2375 info >/dev/null 2>&1; then + echo "✅ Docker accessible via Docker bridge" + export DOCKER_HOST=tcp://172.17.0.1:2375 + else + echo "❌ Docker not accessible" + echo "Available network interfaces:" + ip addr show + exit 1 + fi - - name: Set up Docker Buildx - run: | - docker buildx version - docker buildx create --use --name builder - docker buildx inspect --bootstrap + - name: Show Docker version + run: docker version - - name: Build Docker image with Buildx + - name: Build Docker image working-directory: ./backend run: | - docker buildx build \ - --file docker/Dockerfile \ - --tag normogen-backend:${{ github.sha }} \ - --tag normogen-backend:latest \ - --cache-from type=local,src=/tmp/.buildx-cache \ - --cache-to type=local,dest=/tmp/.buildx-cache-new,mode=max \ - --load \ - . - - # Rotate cache - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache || true + docker build -f docker/Dockerfile -t normogen-backend:${{ github.sha }} -t normogen-backend:latest . - - name: Test Docker image - run: | - docker run --rm normogen-backend:${{ github.sha }} ls -la /app/normogen-backend || echo "Binary check" - - - name: Show image info - run: | - docker images normogen-backend - docker inspect normogen-backend:${{ github.sha }} || echo "Image inspect" + - name: Show images + run: docker images normogen-backend