./launcher entra en modo de aplicación que reconstruye todo

Usuario inexperto, con las siguientes líneas de transcripción para iniciar la discusión:

# ./launcher enter app                                                                                                                                                                         
Se detectó la arquitectura x86_64.                                                                                                                                                                                                   
                                                                                                                                                                                                                        
ADVERTENCIA: Vamos a empezar a descargar la imagen base de Discourse                                                                                                                                                     
Este proceso puede tardar entre unos minutos y una hora, dependiendo de la velocidad de tu red                                                                                                                        
                                                                                                                                                                                                                        
Por favor, ten paciencia                                                                                                                                                                                                       
                                                                                                                                                                                                                        
2.0.20240602-0023: Extrayendo desde discourse/base                                                                                                                                                                          
728328ac3bde: Extrayendo [=============================>                     ]  18.68MB/31.43MB                                                                                                                         
1c0ca3c0af81: Descarga completa
...

Esto no es lo que esperaba que sucediera.

Al ingresar el comando docker ps, veo que ya hay un contenedor con algún tipo de Discourse en ejecución. Lo único que quiero es obtener un shell en ese contenedor en ejecución… no reconstruir toda la aplicación. De hecho, dentro del script ./launcher (alrededor de la línea 746) parece que el comando enter de ./launcher se supone que eventualmente hace lo que yo esperaba… a saber, emitir el comando

docker exec -it app /bin/bash

¿Hay alguna razón convincente para hacer un montón de trabajo adicional antes de hacer esto? Si es así, por favor ilústrame; si no, quizás alguien con experiencia y habilidad pueda transformar esta pregunta en una sugerencia útil. Gracias.

1 me gusta

Sí, ha estado haciendo eso durante al menos un año. Afortunadamente, normalmente no se tarda mucho en descargar una nueva imagen, y no parece hacer mucho más antes de llevarte al shell.

Sin embargo, sí que desordena el disco innecesariamente con un montón de imágenes que nunca se utilizan. Quizás tengan algún propósito que no es inmediatamente aparente.

¿Esto parece un error? ¿Por qué al intentar entrar en el contenedor se debería descargar una nueva imagen?

Noto que esto solo lo hace una vez … si ejecutas ./launcher enter app una segunda vez, omite la comprobación de la imagen. Quizás haya alguna compensación aquí …

¿No es porque en ese momento la imagen ya está descargada?

Sí, pero ¿por qué lo haría en primer lugar?

Estás intentando entrar en el contenedor existente. Eso es todo.

Hace git pull y extrae una nueva imagen porque cuando no lo hacía, mucha gente tenía problemas porque las cosas estaban desactualizadas.

Si tienes una razón para no hacer un pull, ejecuta un comando docker run en su lugar.

1 me gusta

Pensé que esta podría ser la razón. Equilibrar la lógica de piedra fría con las peculiaridades de las expectativas del usuario nunca es sencillo.

Tuve que aprender esto por las malas. Ahora que lo sé, puedo entender la decisión de diseño.

Gracias por las respuestas y por el excelente software.

1 me gusta

No está reconstruyendo todo el contenedor. Simplemente está haciendo un git pull de docker_discourse y obteniendo imágenes base nuevas y luego poniéndolas en el contenedor como esperas. Por eso, después de la primera vez, ya no lo hace. A menos que tengas muy poco espacio en disco o 10-30 segundos sea mucho tiempo, realmente no es un problema.

2 Me gusta