Troubleshooting
Solucoes para problemas comuns no CI/CD Runner.
Deploy
Deploy nao inicia
Sintoma: Push na dist nao aciona deploy.
Causas e solucoes:
App nao registrada
runner list # Se nao aparecer: runner add --repo usuario/meu-appCron nao configurado
crontab -l | grep runner # Se nao aparecer, adicionar: */5 * * * * /opt/runner/runner fetch --deploy --json >> /var/log/runner-fetch.json 2>&1Branch errada
cd /apps/usuario_meu-app git branch # Deve estar na distConfiguracao invalida
runner validate --file /apps/usuario_meu-app/.deploy.yml
Health check falha
Sintoma: Deploy falha com "health check timeout".
Solucoes:
Verificar endpoint
# Ver se endpoint existe docker exec CONTAINER curl -s http://localhost:8000/healthVerificar porta
# Porta configurada correta? grep port /apps/meu-app/.deploy.ymlVer logs do container
docker logs CONTAINER --tail 100Verificar status
docker inspect CONTAINER --format='{{.State.Health.Status}}'
Container nao sobe
Sintoma: Deploy falha, container nao inicia.
Solucoes:
Ver logs
docker logs CONTAINER --tail 200Verificar imagem
docker images | grep IMAGEMTestar manualmente
docker run --rm -it IMAGEM /bin/shVerificar volumes
docker inspect CONTAINER --format='{{.Mounts}}'
Rollback falha
Sintoma: Rollback nao funciona.
Solucoes:
Verificar versoes
runner versions meu-app -i production # Precisa ter versao anteriorVerificar logs
runner logs tail --app /apps/meu-app
Staging
Staging nao cria
Sintoma: runner stage deploy falha.
Solucoes:
Verificar GitHub CLI
gh --version gh auth statusVerificar limite
runner stage list # Se cheio, destruir algum runner stage destroy --id staging_app_pr35Verificar PR existe
gh pr view 42 --repo usuario/meu-app
DNS nao resolve
Sintoma: Staging criado mas URL nao funciona.
Solucoes:
Verificar wildcard DNS
dig pr-42.staging.meusite.com.br # Deve resolver para IP do servidorVerificar Traefik
ls /etc/traefik/dynamic/ | grep stagingVerificar container
docker ps | grep staging_meu-app_pr42
Canary
Peso nao muda
Sintoma: runner weight executa mas trafego nao muda.
Solucoes:
Verificar Traefik config
cat /etc/traefik/dynamic/meu-app.yml # Ver se weights estao corretosRecarregar Traefik
# Traefik faz hot-reload automatico # Mas pode verificar logs: docker logs traefik --tail 50Verificar ambas versoes
docker ps | grep meu-app # Ambos containers devem estar rodando
Notificacoes
Telegram nao envia
Solucoes:
Verificar token
curl "https://api.telegram.org/bot{TOKEN}/getMe"Verificar chat_id
# Para grupos, deve ser negativo grep telegram /opt/runner/config.ymlTestar envio
curl -X POST "https://api.telegram.org/bot{TOKEN}/sendMessage" \ -d "chat_id={CHAT_ID}" \ -d "text=Teste"
Discord nao envia
Solucoes:
Verificar webhook
curl -X POST "{WEBHOOK_URL}" \ -H "Content-Type: application/json" \ -d '{"content": "Teste"}'Webhook existe?
- Verificar se nao foi deletado no Discord
MCP Server
Claude Code nao reconhece
Solucoes:
Verificar instalacao
runner mcp statusReinstalar
runner mcp uninstall runner mcp installReiniciar Claude Code
- Fechar e abrir novamente
Verificar config
cat ~/.config/claude/claude_desktop_config.json
Tools nao funcionam
Solucoes:
Verificar binario
/opt/runner/runner --versionTestar CLI diretamente
runner list
Git
Fetch falha
Sintoma: runner fetch com erro.
Solucoes:
Verificar acesso
cd /apps/meu-app git fetch origin distVerificar SSH key
ssh -T git@github.comVerificar URL
git remote -v
Conflitos na dist
Solucoes:
O Runner usa git reset --hard, conflitos nao devem ocorrer.
Se ocorrer:
cd /apps/meu-app
git fetch origin dist
git reset --hard origin/dist
git clean -fdLogs
Onde estao os logs?
| Log | Localizacao |
|---|---|
| Fetch | /var/log/runner-fetch.json |
| Deploy | /opt/runner/logs/ |
| Container | docker logs CONTAINER |
| Traefik | docker logs traefik |
Ver logs recentes
# Fetch
tail -50 /var/log/runner-fetch.json | jq .
# Deploy de uma app
runner logs tail --app /apps/meu-app
# Historico
runner logs history --app /apps/meu-appComandos de Diagnostico
# Status geral
runner list --detailed
# Verificar app especifica
runner health --app /apps/meu-app
# Validar config
runner validate --file /apps/meu-app/.deploy.yml
# Ver versoes
runner versions meu-app -i production
# Ver pesos
runner weights meu-app -i production
# Listar stagings
runner stage list
# Status MCP
runner mcp status