La primera vez que veo el siguiente error al intentar reconstruir.
2022-10-04 14:39:49.780 UTC [1700] FATAL: lock file "postmaster.pid" is empty
2022-10-04 14:39:49.780 UTC [1700] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
Obviamente puedo leer la pista, pero no estoy seguro de cómo proceder. ¿Alguien puede ofrecer alguna información?
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57c2a0746e93 local_discourse/app “/sbin/boot” 6 meses ago Arriba 16 minutos 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp app
2022-10-04 15:26:43.452 UTC [1699] FATAL: el archivo de bloqueo \"postmaster.pid\" está vacío
2022-10-04 15:26:43.452 UTC [1699] HINT: O bien se está iniciando otro servidor, o el archivo de bloqueo es el remanente de un bloqueo anterior al inicio del servidor.
Esto está sucediendo porque el proceso de compilación cree que PG ya se está ejecutando, así que tal vez algo sobre el proceso de actualización de PG esté fuera de lugar. ¿Puede incluir los registros completos del lanzador (eliminando las contraseñas) para que podamos ver qué está pasando?
Si detuviera la aplicación, esperaría no ver ningún archivo de bloqueo en esa ubicación y ningún proceso de postgres en ejecución. (Por supuesto, necesitaría ejecutar el comando ps directamente en el host, porque el contenedor ya no estaría en ejecución).
En tu situación, creo que eso es lo primero que haría: detener la aplicación y comprobar que no se están ejecutando procesos de postgres. Parece posible que tengas dos instancias en ejecución que están colisionando entre sí.
Es poco probable, pero también es posible que el disco se haya llenado y por eso el archivo de bloqueo esté vacío. O tal vez haya algún problema de permisos.
Editar: dentro del contenedor, el archivo de bloqueo tiene una ubicación y propiedad diferentes:
# ./launcher enter app
Se detectó la arquitectura x86_64.
# ls -l /shared/postgres_data/postmaster.pid
-rw------- 1 postgres postgres 92 Nov 15 16:20 /shared/postgres_data/postmaster.pid
# exit
logout
#
Como señala Sam, necesitaríamos ver más información.