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_TOKENno 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 updatecom 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).