Pela primeira vez, vejo o seguinte erro ao tentar 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.
Eu obviamente consigo ler a dica, mas não sei como proceder. Alguém pode oferecer alguma informação?
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57c2a0746e93 local_discourse/app “/sbin/boot” 6 meses atrás Subindo há 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: lock file \"postmaster.pid\" is empty
2022-10-04 15:26:43.452 UTC [1699] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
Isso está acontecendo porque o processo de build pensa que o PG já está em execução, então talvez algo sobre o processo de upgrade do PG esteja incorreto. Você pode incluir logs completos do launcher (removendo senhas) para que possamos ver o que está acontecendo.
Se eu parasse o aplicativo, esperaria não ver nenhum lockfile naquele local e nenhum processo postgres em execução. (Eu, é claro, precisaria executar o comando ps diretamente no host, porque o contêiner não estaria mais em execução.)
Na sua situação, acho que é o que eu faria primeiro: parar o aplicativo e verificar se nenhum processo postgres está em execução. Parece possível que você tenha duas instâncias em execução que estão colidindo uma com a outra.
É improvável, mas também é possível que o disco tenha enchedo e é por isso que o lockfile está vazio. Ou talvez haja um problema de permissão de alguma forma.
Editar: dentro do contêiner, o lockfile tem um local e propriedade diferentes:
# ./launcher enter app
x86_64 arch detected.
# ls -l /shared/postgres_data/postmaster.pid
-rw------- 1 postgres postgres 92 Nov 15 16:20 /shared/postgres_data/postmaster.pid
# exit
logout
#
Como Sam observa, precisaríamos ver mais informações.