./launcher entra no app reconstrói tudo

Usuário inexperiente aqui, com as poucas linhas de transcrição a seguir para iniciar a discussão:

# ./launcher enter app                                                                                                                                                                         
x86_64 arch detectado.                                                                                                                                                                                                   
                                                                                                                                                                                                                        
AVISO: Estamos prestes a iniciar o download da imagem base do Discourse                                                                                                                                                     
Este processo pode levar de alguns minutos a uma hora, dependendo da velocidade da sua rede                                                                                                                        
                                                                                                                                                                                                                        
Por favor, seja paciente                                                                                                                                                                                                       
                                                                                                                                                                                                                        
2.0.20240602-0023: Puxando de discourse/base                                                                                                                                                                          
728328ac3bde: Extraindo [=============================>                     ]  18.68MB/31.43MB                                                                                                                         
1c0ca3c0af81: Download completo
...

Isso não é o que eu esperava que acontecesse.

Entrar no comando docker ps mostra que há um contêiner com algum tipo de Discourse já em execução. Tudo o que quero fazer é obter um shell nesse contêiner em execução … não reconstruir todo o aplicativo. De fato, dentro do script ./launcher (por volta da linha 746) parece que o comando enter para ./launcher deveria eventualmente fazer o que eu esperava … a saber, emitir o comando

docker exec -it app /bin/bash

Existe um motivo convincente para fazer um monte de outros trabalhos antes de fazer isso? Se sim, por favor, me ilumine; se não, talvez alguém com experiência e habilidade possa transformar esta pergunta em uma sugestão útil. Obrigado.

1 curtida

Sim, ele tem feito isso por pelo menos um ano. Felizmente, não demora muito para baixar uma nova imagem, e ele não parece fazer muito mais antes de te levar para o shell.

No entanto, ele parece desnecessariamente poluir o disco com um monte de imagens que nunca são usadas. Talvez elas tenham algum propósito que não é imediatamente aparente.

Isso parece um bug? Por que tentar entrar no contêiner faria o download de uma nova imagem?

Notei que isso só acontece uma vez… se você executar ./launcher enter app uma segunda vez, ele pula a verificação da imagem. Talvez haja alguma contrapartida aqui…

Isso não é porque nesse ponto a imagem já foi baixada?

Sim, mas por que isso aconteceria em primeiro lugar?

Você está tentando entrar no contêiner existente. É só isso.

Ele faz git pull e baixa uma nova imagem porque, quando não fazia, um monte de gente teve problemas porque as coisas estavam desatualizadas.

Se você tiver um motivo para não fazer um pull, use um comando docker run em vez disso.

1 curtida

Eu pensei que esse poderia ser o motivo. Equilibrar a lógica fria com as peculiaridades das expectativas do usuário nunca é simples.

Tive que aprender isso da maneira mais difícil. Agora que sei, consigo entender a decisão de design.

Obrigado pelas respostas e pelo excelente software.

1 curtida

Ele não está reconstruindo o container inteiro. Ele está apenas fazendo um git pull do docker_discourse e baixando novas imagens base e, em seguida, colocando-as no container como você espera. É por isso que, depois da primeira vez, ele não faz mais isso. A menos que você esteja com pouquíssimo espaço em disco ou 10-30 segundos seja muito tempo, não é realmente um problema.

2 curtidas