`runner container logs`

Lê os logs do container que está servindo uma app+instance, sem precisar de SSH no servidor + docker logs <container>. Permite operação remota via CCS, MCP, ou qualquer orquestrador externo.

Disponível desde v2.22.9.

Sintaxe

runner container logs <app> [-i instance] [-n tail] [--json]
Flag Default Descrição
-i, --instance production Instance do qual ler
-n, --tail 100 Número de linhas (use all pra tudo)
--json false Output em JSON

Como resolve o container

Igual ao `runner restart`: state file → current_version → nome do container {project_und}_{instance}_{version_und}.

Exemplos

# Últimas 100 linhas (default)
runner container logs meu-app

# Últimas 500 linhas
runner container logs meu-app -n 500

# Tudo
runner container logs meu-app -n all

# Instance específica
runner container logs meu-app -i staging

# JSON pra processamento programático
runner container logs meu-app -n 50 --json

Output texto (default)

Logs limpos — runner faz strip automático dos headers de 8 bytes que o docker stream API prefixa em cada linha:

[2026-05-15T12:34:56Z] INFO  Started server on :3000
[2026-05-15T12:34:57Z] WARN  Slow query: SELECT * FROM users (1.2s)
[2026-05-15T12:35:00Z] INFO  Request: GET /health -> 200 (3ms)

Output JSON (`--json`)

{
  "action": "container_logs",
  "app": "meu-app",
  "instance": "production",
  "version": "v1.2.3",
  "container": "meu_app_production_v1-2-3",
  "tail": "100",
  "logs": "[2026-05-15T12:34:56Z] INFO  Started server on :3000\n...",
  "timestamp": "2026-05-15T..."
}

Casos de uso típicos

Debug de erro pós-deploy:

runner deploy meu-app
# falha; o pipeline mostra "container unhealthy"
runner container logs meu-app -n 200
# inspeciona stack trace

Confirmar mudança de env:

runner env set meu-app LOG_LEVEL=debug
runner restart meu-app
runner container logs meu-app -n 20
# vê se o app pegou o novo LOG_LEVEL

Monitorar saúde:

# A cada 30s, captura últimas 10 linhas
watch -n 30 runner container logs meu-app -n 10

Limitações

  • Não tem follow/tail real-time (nem --follow, nem -f). Para streaming, use o MCP Server ou SSH direto. Esse comando é one-shot.
  • Não filtra por timestamp. Se quiser logs de janela específica, use docker logs <container> --since=... direto.

Erros comuns

Erro Causa
app '<X>' has no current_version App nunca deployada
docker logs ...: 404 No such container Container parou ou foi removido — verifique runner status <X>

Veja também

By Borlot.com.br on 15/05/2026