Errno::ENOENT: No existe tal archivo o directorio @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf

Intenté actualizar a través de la administración, no estoy seguro de lo que sucedió, pero las páginas de administración quedaron en blanco mientras que el front estaba bien. Decidí actualizar de nuevo a través de la línea de comandos y obtuve este error

Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf

cd /var/discourse; ./launcher rebuild app
Se detectó la arquitectura x86_64.
Asegurando que el lanzador esté actualizado
Obteniendo origen
El lanzador está actualizado
2.0.20240708-0023: Extrayendo de discourse/base
Digest: sha256:025e9c1f68
Estado: La imagen está actualizada para discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T20:57:43.044950 #1]  INFO -- : Leyendo desde stdin
I, [2025-02-06T20:57:43.066724 #1]  INFO -- : Archivo > /etc/service/postgres/run  chmod: +x  chown: 
I, [2025-02-06T20:57:43.072432 #1]  INFO -- : Archivo > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2025-02-06T20:57:43.077790 #1]  INFO -- : Archivo > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2025-02-06T20:57:43.083299 #1]  INFO -- : Archivo > /root/install_postgres  chmod: +x  chown: 
I, [2025-02-06T20:57:43.087962 #1]  INFO -- : Archivo > /root/upgrade_postgres  chmod: +x  chown: 

FALLÓ
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
reemplazo falló con los parámetros {"filename"=>"/etc/postgresql/15/main/postgresql.conf", "from"=>"data_directory = '/var/lib/postgresql/15/main'", "to"=>"data_directory = '/shared/postgres_data'"}
el arranque falló con el código de salida 1
** FALLÓ EL ARRANQUE ** 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.

Alguna otra información

cat containers/app.yml | grep postgres

- "templates/postgres.template.yml"

¿Cómo solucionarlo?

Tengo un droplet de DigitalOcean, Ubuntu, por si ayuda.

Solo tengo un contenedor.

¿Esos * realmente están ahí?

Debería ser

- "templates/postgres.template.yml"

Lo siento, fue un error al copiar y pegar. Lo he corregido. No, no están ahí.

1 me gusta

Acabo de intentar actualizar otra instancia en otro servidor y funcionó. Ambos servidores son droplets de DO con las mismas especificaciones.
No estoy seguro de lo que está pasando.

Mi foro ha estado caído por 2 días, no puedo hacerlo funcionar. Hilo movido a Soporte. Espero recibir ayuda.

Esa es una imagen de Docker mucho más antigua que no tiene instalados los paquetes de PostgreSQL 15, de ahí el error:

Probablemente tu archivo launcher ha sido modificado y se ha bloqueado para usar la imagen de Docker antigua mencionada anteriormente. Puedes cambiarla a la imagen más reciente resaltada a continuación y luego intentar reconstruir de nuevo. (Realiza las copias de seguridad necesarias de antemano).

2 Me gusta

Gracias por la respuesta. Acabo de comprobar y en el archivo launcher la base parece ser la última.

root@host:/var/discourse# cat launcher | grep "base:2.0"
image="discourse/base:2.0.20250129-0720"

Sin embargo, durante la reconstrucción todavía está tomando la imagen anterior, así que ¿de dónde se está tomando esta imagen anterior? ¿Cómo lo compruebo?

También podría definirse como base_image en tu archivo app.yml. Si lo encuentras, puedes simplemente comentar (o eliminar) la línea.

Si eso no ayuda, puedes intentar una búsqueda recursiva de parte de esa cadena en su lugar.

grep --exclude-dir shared -rI 20240708 /var/discourse
3 Me gusta

Funcionó. Muchas gracias por su ayuda.

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.