Nada se muestra en la reconstrucción del launcher

Estoy intentando seguir la guía para agregar soporte para la gem de MySQL al contenedor de la aplicación mediante el tutorial Use an import script that requires MySQL - #4 by pfaffman

Sin embargo, cuando ejecuto lo siguiente, simplemente se detiene.

> ./launcher stop app
> ./launcher rebuild import

image
Hasta que termino el proceso con CTRL+C

Nota: He esperado más de un par de horas para que mostrara alguna respuesta, pero nada.

Y cuando inspecciono los contenedores de Docker, muestra un nuevo contenedor detenido (corrupto).

image

No estoy seguro de qué estoy haciendo mal que lleva a este comportamiento.

El contenido de mi archivo containers/import.yml (sin incluir la parte que no toqué):

El servidor está alojado en DO y, cuando reinicio el servicio de Docker, vuelve al contenedor de la aplicación original en ejecución.

image

P.D.: ./launcher rebuild app funciona bien, sin embargo.

Quizás ejecutes ./launcher stop app; antes de intentar construir import.

EDIT:

Maldita sea.

Sí, obviamente estoy ejecutando el rebuild después del subcomando stop. Déjame editar mi pregunta.

OK, lo entendí. Después de detener el contenedor

> ./launcher stop app

también eliminé el contenedor con docker rm app e intenté reconstruirlo después, y el proceso continuó sin problemas.

Ahora, cuando llego al punto en que se utiliza la plantilla mysql-dep, se produce el siguiente error.

...
Setting up libgmp-dev:amd64 (2:6.1.2+dfsg-4) ...
Setting up nettle-dev:amd64 (3.4.1-1) ...
Setting up libgnutls28-dev:amd64 (3.6.7-4+deb10u2) ...
Setting up libmariadb-dev (1:10.3.22-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...

I, [2020-02-27T16:51:33.937186 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'test development'`, and stop using this flag
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

If this is a development machine, remove the /var/www/discourse/Gemfile freeze 
by running `bundle config unset deployment`.

The dependencies in your gemfile changed

You have added to the Gemfile:
* mysql2
I, [2020-02-27T16:51:34.670930 #1]  INFO -- : 
I, [2020-02-27T16:51:34.672542 #1]  INFO -- : Terminating async processes
I, [2020-02-27T16:51:34.673101 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2020-02-27T16:51:34.673593 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
2020-02-27 16:51:34.674 UTC [49] LOG:  received fast shutdown request
166:signal-handler (1582822294) Received SIGTERM scheduling shutdown...
2020-02-27 16:51:34.682 UTC [49] LOG:  aborting any active transactions
166:M 27 Feb 2020 16:51:34.693 # User requested shutdown...
166:M 27 Feb 2020 16:51:34.695 * Saving the final RDB snapshot before exiting.
2020-02-27 16:51:34.698 UTC [49] LOG:  worker process: logical replication launcher (PID 58) exited with exit code 1
2020-02-27 16:51:34.701 UTC [53] LOG:  shutting down
166:M 27 Feb 2020 16:51:34.741 * DB saved on disk
166:M 27 Feb 2020 16:51:34.742 # Redis is now ready to exit, bye bye...
2020-02-27 16:51:34.786 UTC [49] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development' failed with return #<Process::Status: pid 970 exit 16>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["echo \"gem 'mysql2'\" >> Gemfile", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmariadb-dev", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}
75b27d60e1dc3a4b5d76bc75f2874ebf405fe29edfebec3cb809233f7b01ec48
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

¿Alguien sabe algo sobre este error, por favor?

Tengo problemas similares. Esto parece ser lo mismo que Failed to bootstrap using import template.

Y no pretendía intentar actualizar ese contenedor porque había visto esto, pero lo intenté de todos modos debido a otro error extraño. . .

EDIT: Agregué el comando

su discourse -c 'bundle config unset deployment'

al archivo de plantilla antes de la línea

 su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'

y ahora funciona. (Pero, por desgracia, no resolvió mi problema no relacionado).

Literalmente usé esta plantilla la semana pasada y no tuve ningún problema con ella. Es bastante extraño, pero vale la pena echarle un vistazo la próxima semana. La agregaré a mi lista.

¡Yo también! Pero supongo que algo para actualizar?

Además del comentario, también tuve que omitir los requisitos previos del lanzador

> ./launcher rebuild import --skip-prereqs

y siguiendo la sugerencia de @pfaffman

la imagen se construyó correctamente. :white_check_mark:

Parece que esto ya está resuelto aquí – @pfaffman @rahilqf ¿pueden confirmarlo?

Parece que sí. ¡Muchas gracias!

Ahora, si solo hubiera una plantilla que añadiera php-serialize