SmartITBI · deploy do merge ao container

SmartITBI · deploy do merge ao container A sequence diagram generated by Archify. merge na branch do ambiente dev · homolog · main, uma por ambiente webhook por repositório, com segredo um hook só; a branch do push decide o ambiente SSH: clone com deploy key read-only docker build pelo Dockerfile e push · tag = commit imagem por aplicação e ambiente SSH: compose gerado e labels do Traefik docker pull com a credencial de leitura config.json do ubuntu e o do root — o pull usa sudo camadas da imagem migrate --noinput, pelo entrypoint depois collectstatic e o gunicorn na porta 8000 schema aplicado healthy em /health · container antigo removido log no painel, sem as linhas sensíveis Gatilho Build fora do ambiente Subida no host Confirmação Desenvolvedor · merge aprovado · Sequence participant Desenvolvedor merge aprovado GitHub · sistema_analise_imobiliaria · Sequence participant GitHub sistema_analise_imobiliaria Coolify · sitbi-controle-2608 · Sequence participant Coolify sitbi-controle-2608 adapter-build-2608 · build server compartilhado · Sequence participant adapter-build-2608 build server compartilhado IBM Container Registry · br.icr.io/smartitbi · Sequence participant IBM Container Registry br.icr.io/smartitbi sitbi-ambientes-2608 · os três ambientes · Sequence participant sitbi-ambientes-2608 os três ambientes Postgres 18 · container no mesmo host · Sequence participant Postgres 18 container no mesmo host Legend request return security async trace default message

Exercitado em 20/08/2026

  • • Webhook testado pelo próprio GitHub: o push enfileirou as cinco aplicações da branch, sem abrir o painel
  • • As 15 imagens dos três ambientes vieram do registry — nenhum build aconteceu na máquina que serve
  • • Worker de scraping, worker de apoio e beat saem da mesma imagem, com o comando trocado por --entrypoint

Onde isto quebra em silêncio

  • • custom_labels é gravado na criação: mudar a porta depois não regenera a rota, e o Traefik devolve 502
  • • settings.production recusa subir sem JWT_SECRET — inclusive no worker e no beat, que morrem sem deixar log
  • • Um docker login novo na máquina de build sobrescreveria a credencial do Adapter: o registry é o mesmo host

Diferenças em relação ao Adapter

  • • Deploy key read-only por repositório no lugar da GitHub App
  • • Um host para os três ambientes: o compose vai para a mesma máquina, mudando só o environment