Eu meio que entendo que quando é feito pela primeira vez — ok, sejamos honestos: eu não entendo as diferenças entre bootstrap e rebuild, mas a IA onipotente me disse que eu deveria fazer o bootstrapping na primeira vez, porque é alguma coisa de desenvolvimento estranha, e depois disso, sempre, rebuild é bom.
Então… por que não ./launcher rebuild web_only e é isso? Porque se eu destruir primeiro, não terei nada para reiniciar se o rebuild falhar, certo?
Eu entendo que se eu atualizar tudo, tenho que parar o web_only primeiro, depois fazer o data e o último é o web_only.
Se você fizer uma reconstrução, ela desliga o contêiner, executa o bootstrap, destrói o contêiner antigo e, em seguida, inicia o novo.
A reconstrução não destrói o contêiner existente (até que ele tenha um novo para iniciar em seu lugar).
Se o bootstrap falhar, você pode reiniciar o contêiner antigo manualmente.
Na primeira vez, não há motivo para não fazer uma reconstrução.
Para compilações subsequentes, você deseja fazer o bootstrap para que o contêiner existente possa continuar a atender às solicitações enquanto o novo contêiner está sendo criado.
Para o contêiner de dados, você sempre deseja reconstruir porque não quer que duas instâncias de banco de dados modifiquem os mesmos arquivos.
Para a atualização do PG, você deseja parar tudo (a web não pode funcionar sem o banco de dados de qualquer maneira) antes de reconstruir o contêiner de dados.
A reconstrução também faz um “git pull”, então você pode usar o bootstrap em vez disso para ter controle sobre isso.
É como o disco rígido de um computador inteiro. Um contêiner é apenas um computador inteiro que tem maneiras limitadas de se conectar a ele (através de portas ou pelos arquivos que eles atualizam que são acessíveis ao sistema operacional.