Errno::ENOENT: Arquivo ou diretório não encontrado @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf

Tentei atualizar via admin, não tenho certeza do que aconteceu, mas as páginas de admin ficaram em branco enquanto o front estava ok. Decidi fazer a atualização novamente via linha de comando e recebi este erro

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

cd /var/discourse; ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
2.0.20240708-0023: Pulling from discourse/base
Digest: sha256:025e9c1f68
Status: Image is up to date for 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 -- : Reading from stdin
I, [2025-02-06T20:57:43.066724 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2025-02-06T20:57:43.072432 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2025-02-06T20:57:43.077790 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2025-02-06T20:57:43.083299 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2025-02-06T20:57:43.087962 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"filename"=>"/etc/postgresql/15/main/postgresql.conf", "from"=>"data_directory = '/var/lib/postgresql/15/main'", "to"=>"data_directory = '/shared/postgres_data'"}
bootstrap failed with exit code 1
** 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.

Algumas outras informações

cat containers/app.yml | grep postgres

- "templates/postgres.template.yml"

Como consertar?

Eu tenho um droplet do DigitalOcean, Ubuntu, se isso ajudar.

Eu tenho apenas um contêiner.

Esses * estão realmente lá?

Deveria ser

- "templates/postgres.template.yml"

Desculpe, foi um erro de copiar e colar. Eu corrigi. Não, eles não estão lá.

1 curtida

Acabei de tentar atualizar outra instância em outro servidor e funcionou. Ambos os servidores são droplets DO com as mesmas especificações.
Não tenho certeza do que está acontecendo.

Meu fórum está fora do ar há 2 dias, não consigo fazê-lo funcionar. Movi o tópico para Suporte. Espero obter alguma ajuda.

Essa é uma imagem Docker muito mais antiga que não tem os pacotes do PostgreSQL 15 instalados, daí o erro:

Seu arquivo launcher provavelmente foi modificado e travado para usar essa imagem Docker mais antiga acima. Você pode alterá-lo para a imagem mais recente destacada abaixo e tentar reconstruir novamente. (Faça os backups necessários antes.)

2 curtidas

Obrigado pela resposta. Acabei de verificar e no arquivo launcher a base parece ser a mais recente

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

No entanto, durante a reconstrução, ele ainda está pegando a imagem antiga, então de onde essa imagem antiga está sendo retirada? Como posso verificar isso?

Também pode ser definido como base_image no seu arquivo app.yml. Se encontrar isso, pode simplesmente comentar (ou remover) a linha.

Se isso não ajudar, pode tentar uma busca recursiva por parte dessa string.

grep --exclude-dir shared -rI 20240708 /var/discourse
3 curtidas

Funcionou. Muito obrigado pela ajuda.

1 curtida

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