Estoy creando una nueva instancia de Discourse desde cero con fines de desarrollo y veo este error de arranque de nuevo:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falló con retorno #<Process::Status: pid 1002 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
el arranque falló con el código de salida 1
La configuración del contenedor es con dos contenedores para webonly y dataonly (redis) y con una base de datos postgresql externa. Comentar la configuración de maxmind no cambia nada.
Hmmm, no, tenemos 4 GB de RAM y mucho espacio en el disco duro (2 x 32 GB), el entorno general es el mismo que el de la otra máquina Docker donde las compilaciones se ejecutan sin problemas.
Estado de la memoria:
root@docker3a:/var/discourse# free -h total used free shared buff/cache available Mem: 3.8Gi 819Mi 1.4Gi 22Mi 1.9Gi 3.0Gi Swap: 974Mi 52Mi 922Mi
OK, he arreglado la separación de web_only y redis. El mensaje de error ahora es
FAILED -------------------- Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falló con el código de retorno #<Process::Status: pid 981 exit 1> Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn' exec falló con los parámetros {\"cd\"=>\"$home\", \"tag\"=>\"migrate\", \"hook\"=>\"db_migrate\", \"cmd\"=>[\"su discourse -c 'bundle exec rake db:migra te'\"]} bootstrap falló con el código de salida 1 ** FALLÓ EL BOOTSTRAP ** por favor, desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno. ./discourse-doctor puede ayudar a diagnosticar el problema. 801049b69a89d38b1ae5c299d356fc5f8dc6a8f518b1260c2dde05e0b6081556
Pero tal vez sea un malentendido / falta de conocimiento de mi parte:
La base de datos debería ser externa en otro contenedor lxc que tiene una base de datos postgresql. El usuario y la base de datos existen, pero la base de datos está vacía antes del primer bootstrap de web_only. ¿El script crea la base de datos por sí mismo en el sistema remoto al primer build? ¿O primero tengo que crear el contenedor de la base de datos y luego exportar su esquema predeterminado y los datos manualmente al demonio postgresql externo?
Gracias por el diagrama. Es una configuración bastante sofisticada; lo harías si tuvieras una buena razón y conocieras el territorio.
Si todavía estás viendo lo siguiente, creo que es la indicación de lo que está mal. Redis no puede abrir el puerto en el que necesita estar escuchando.
Así que las preguntas son si redis debería estar haciendo eso, en este contenedor, y si es así, dónde más en la máquina se está ejecutando otro redis. lsof podría ser una herramienta útil aquí.
Hola @Ed_S
gracias por la pista sobre el puerto que faltaba. Primero quiero esperar la respuesta de Falco sobre mis preguntas sobre la configuración general de Discourse con una base de datos PostgreSQL externa.
Sí, la configuración es un poco sofisticada en comparación con la estándar con solo un contenedor de aplicaciones. Ejecuto todo en una máquina raíz dedicada con Proxmox (https://p\u003eroxmox.com) como entorno de virtualización en hetzner.de.
Aún necesitas compartir los registros completos, incluida la parte en la que falló la migración. Mi suposición (y es una suposición ya que no has compartido el error) es que estás usando el plugin de IA y tu base de datos no tiene el complemento requerido.
Ahora creo que el mejor enfoque sería crear primero una configuración estándar “todo en uno” (app.yml). Y luego volcar el esquema y los datos iniciales del contenedor en una máquina postgres externa. @Falco ¿qué opinas?