Lamentablemente, simplemente ejecutar
./launcher start app
no vuelve a poner el foro en línea.
De todos modos, hice más experimentos. Específicamente, intenté ejecutar manualmente el comando yarn fallido en la imagen de docker:
./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... falla con el mismo timeout ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... tiene éxito ...
Esto confirma que aumentar el timeout soluciona el problema.
La pregunta restante entonces es cómo aumentar también el timeout durante ./launcher rebuild app.
El archivo web.template.yml se encuentra efectivamente en discourse/containers fuera de la imagen de docker. No lo encontré inicialmente, porque mi instalación de Discourse está en una ubicación no estándar, no en /var/discourse.
La corrección mencionada en la publicación referenciada anteriormente se refiere a la línea 159, pero esa línea ya no parece ser correcta, probablemente debido a actualizaciones. Sin embargo, hay estas líneas alrededor de la línea 188:
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
La publicación sugiere insertar una nueva sección para establecer el timeout, pero no da instrucciones específicas sobre cómo hacerlo. No estoy muy familiarizado con yaml, pups y yarn o cómo se usan en Discourse, así que no quise adivinar. En cambio, probé este cambio en la sección original:
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'
El comando ./launcher rebuild app ahora tarda mucho tiempo (¡más de dos horas!, mucho más de lo que solía tardar). La buena noticia es que el foro está de vuelta en línea. Genial, gracias por la ayuda.
¿Hay alguna forma de aumentar el timeout añadiendo un comando a containers/app.yml? Sería conveniente, ya que mantendría todas mis personalizaciones juntas en un solo archivo.
Usar una configuración de 2 contenedores suena como una gran idea; no era consciente de que esto fuera posible. Supongo que te refieres a esto: Move from standalone container to separate web and data containers; lo probaré. Cualquier consejo adicional es bienvenido.
Cuando ejecuto una actualización de mi instancia de Discourse desde el navegador, ¿también ejecuta ./launcher rebuild app? ¿Toma temporalmente el foro? Hasta ahora, tenía la impresión de que el foro permanece en línea durante la mayor parte del proceso, pero no estoy seguro. Estas cosas nunca han estado claras para mí, y nunca he tenido tiempo de averiguarlas realmente. Cualquier respuesta o indicación de más información es bienvenida.