Pular para o conteúdo principal

🚀 Deploy Contínuo de Containers

Muitas aplicações Docker são atualizadas frequentemente com novas versões e correções. Para manter seus ambientes atualizados na plataforma SaveinCloud, é recomendável realizar o redeploy dos containers sempre que novos tags forem lançados.

O redeploy permite atualizar a imagem de um container sem afetar os dados persistentes da aplicação.


🔁 Como Funciona o Redeploy

  1. Um novo container é criado internamente a partir da nova imagem (tag).
  2. Os dados personalizados do container atual são mapeados e preservados.
  3. O container original é parado e atualizado com os arquivos do novo.
  4. Um snapshot é criado antes da operação para permitir rollback em caso de falha.

💡 Se você usa múltiplas instâncias (escalabilidade horizontal), é possível atualizar cada container de forma sequencial, reduzindo ou até evitando downtime.

perigo

É de extrema importância que seja feito todos testes em um ambiente de homologação antes de incluir esse tipo de processo em um ambiente produtivo, visto que, a má configuração dos dados a ser preservados pode levar a perda de dados, para entender mais sobre como preservar dados, Leia Aqui


🖥️ Redeploy pelo Painel da SaveinCloud

  1. Acesse o ambiente e clique em Redeploy Container(s) no container ou camada desejada.
  2. Escolha o novo Tag da imagem.
  3. Configure as opções adicionais:
    • Keep volumes data: mantém os dados persistentes (recomendado).
    • Sequential deployment with delay: redeploy gradual, um a um, com delay.
    • Temporarily remove node(s) from DNS: remove temporariamente do DNS durante o redeploy.
  4. Clique em Redeploy e confirme a operação.

🔗 Redeploy via API

Use o endpoint:

POST /1.0/environment/control/rest/redeploycontainers

Parâmetros:

  • envName: nome do ambiente.
  • session: token de acesso.
  • nodeGroup: camada (opcional).
  • nodeId: ID do container (opcional).
  • tag: nova versão da imagem.
  • useExistingVolumes: true para preservar volumes.
  • login/password: se imagem for privada.
  • manageDNSState: true para ajustar DNS durante atualização sequencial.

✅ Use RedeployContainersByGroup se precisar customizar delays entre containers.

Exemplo com curl:

curl --location 'https://{{platformDomain}}/1.0/environment/control/rest/redeploycontainers' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'envName=meu-ambiente' \
--data-urlencode 'session={{session}}' \
--data-urlencode 'nodeGroup=cp' \
--data-urlencode 'tag=1.2.3' \
--data-urlencode 'useExistingVolumes=true'

🧰 Redeploy via CLI

  1. Liste os ambientes e containers:
~/saveincloud/environment/control/getenvs
~/saveincloud/environment/control/getenvinfo --envName meu-ambiente
  1. Liste as tags disponíveis para um container:
~/saveincloud/environment/control/getcontainernodetags --envName meu-ambiente --nodeId 12345
  1. Faça o redeploy:
~/saveincloud/environment/control/redeploycontainers \
--envName meu-ambiente \
--nodeId 12345 \
--tag 1.2.3 \
--useExistingVolumes true

🔐 Inclua --login e --password se estiver usando uma imagem privada.


✅ Conclusão

Com o processo de redeploy da plataforma SaveinCloud, você consegue manter suas aplicações Docker atualizadas com segurança e flexibilidade, seja via painel, API ou CLI — mantendo os dados persistentes e com o menor downtime possível.