Pular para conteúdo

Deploy - Visao Geral

Fluxo

git push main
     |
  GitHub Actions
     |
  Build imagem Docker
     |
  Push para ghcr.io/the-cmos/...
     |
  SSH no servidor
     |
  docker login ghcr.io (GITHUB_TOKEN)
     |
  docker pull nova imagem
     |
  docker service update (ou create)

Pontos Importantes

  • Build e deploy estao no mesmo job — necessario para reutilizar o GITHUB_TOKEN no login do servidor
  • Packages no GHCR tem visibilidade Internal (visiveis para membros da org)
  • Na primeira execucao, o workflow cria o service com docker service create
  • Nas seguintes, faz docker service update com a nova imagem
  • Tags: latest + SHA do commit

Imagens Docker

Servico Imagem Base
Backend ghcr.io/the-cmos/marie_ai node:20-slim (Debian)
Frontend ghcr.io/the-cmos/marie_frontend node:20-alpine
Webhook ghcr.io/the-cmos/whatsapp_webhook_sqs node:20-alpine

Porque Debian no Backend

O backend usa node:20-slim (Debian) em vez de Alpine porque o OpenSSL do Alpine e incompativel com MongoDB Atlas (erro SSL tlsv1 alert internal error).