diff --git a/.forgejo/workflows/deploy.yaml b/.forgejo/workflows/deploy.yaml index 2ec66c5..36e2420 100644 --- a/.forgejo/workflows/deploy.yaml +++ b/.forgejo/workflows/deploy.yaml @@ -19,35 +19,38 @@ jobs: container: image: docker:24.0.7-dind options: --privileged - # SOLUÇÃO: Cria um daemon do Docker dedicado para este Job - services: - docker: - image: docker:24.0.7-dind - privileged: true env: - # Aponta o CLI para o serviço sidecar em vez do socket local - DOCKER_HOST: tcp://docker:2375 + # Forçamos o uso do localhost para evitar erros de DNS/Lookup + DOCKER_HOST: tcp://localhost:2375 DOCKER_TLS_CERTDIR: "" steps: - - name: Fix Network & Install Git + - name: Prepare Environment (MTU & Git & Docker Daemon) run: | + # 1. Ajuste de Rede ip link set dev eth0 mtu ${{ env.DOCKER_MTU }} || true apk add --no-cache git + + # 2. Inicia o Docker Daemon em background dentro do próprio container + # Isso garante que 'localhost:2375' funcione sem depender de DNS externo + nohup dockerd --host=tcp://localhost:2375 --host=unix:///var/run/docker.sock --mtu=${{ env.DOCKER_MTU }} & + + # 3. Espera o Docker subir (retry loop) + timeout 30s sh -c 'until docker info >/dev/null 2>&1; do echo "Aguardando Docker..."; sleep 2; done' - name: Checkout code run: | git config --global core.compression 0 git clone --depth 1 --branch dev https://${{ secrets.FORGEJO_TOKEN }}@pipe.gohorsejobs.com/${{ github.repository }}.git . - - name: Docker Login + - name: Docker Login (Forgejo) run: | + # Autenticação usando o Token do Forgejo echo "${{ secrets.FORGEJO_TOKEN }}" | docker login ${{ env.REGISTRY }} \ -u ${{ env.IMAGE_NAMESPACE }} --password-stdin - name: Build & Push Backend run: | - # O Docker nativo aqui usará o daemon do service docker build --build-arg DOCKER_MTU=${{ env.DOCKER_MTU }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/gohorsejobs:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/gohorsejobs:latest ./backend @@ -88,6 +91,7 @@ jobs: kubectl create namespace gohorsejobsdev --dry-run=client -o yaml | kubectl apply -f - + # Garante que o secret de pull de imagem no K3s use o Registry correto kubectl -n gohorsejobsdev create secret docker-registry forgejo-registry \ --docker-server=${{ env.REGISTRY }} \ --docker-username=${{ env.IMAGE_NAMESPACE }} \ @@ -108,5 +112,5 @@ jobs: kubectl -n gohorsejobsdev set image deployment/gohorse-backoffice-dev \ backoffice=${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/backoffice:${{ github.sha }} - kubectl -n gohorsejobsdev rollout status deployment/gohorse-backend-dev --timeout=60s - kubectl -n gohorsejobsdev rollout status deployment/gohorse-backoffice-dev --timeout=60s \ No newline at end of file + kubectl -n gohorsejobsdev rollout status deployment/gohorse-backend-dev --timeout=120s + kubectl -n gohorsejobsdev rollout status deployment/gohorse-backoffice-dev --timeout=120s \ No newline at end of file