Em boa fé, devo começar dizendo que sou novo na plataforma e na base de código e, portanto, não faço ideia de como o rebuild funciona atualmente nos bastidores. No entanto, meu entendimento atual é que o rebuild:
- para o container atual
- constrói um novo container com dados da árvore de origem
- aguarda que você inicie o novo container
De uma perspectiva voltada para DevOps, por que não é possível construir o novo container (talvez em outra branch ou diretório temporário) enquanto o antigo ainda está em execução? Isso pareceria tornar a troca do novo container pelo antigo um processo muito mais rápido (pelo menos em termos de tempo de inatividade), talvez na ordem de segundos em vez de minutos.
Se os containers estiverem usando volumes de armazenamento que não são destruídos quando o container é reconstruído, nem mesmo tenho certeza de que alterações de configuração ou de banco de dados (por exemplo, novas mensagens) precisem ser tratadas de forma especial para esse caso de uso, o que significa que a construção do container não deveria estar tão acoplada ao status do container.
Isso é simplesmente uma questão que ninguém ainda voltou sua atenção, ou existe uma decisão arquitetural existente que exige que um container seja interrompido antes que outro possa ser construído?