Errno::ENOENT: Datei oder Verzeichnis nicht gefunden @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf

Ich habe versucht, über das Admin-Panel zu aktualisieren, bin mir aber nicht sicher, was passiert ist, aber die Admin-Seiten wurden leer, während das Frontend in Ordnung war. Ich beschloss, die Aktualisierung erneut über die Befehlszeile durchzuführen und erhielt diese Fehlermeldung

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.

Einige weitere Informationen

cat containers/app.yml | grep postgres

- "templates/postgres.template.yml"

Wie kann ich das beheben?

Ich habe einen DigitalOcean Droplet, Ubuntu, falls das hilfreich ist.

Ich habe nur einen Container.

Sind diese *-Zeichen wirklich vorhanden?

Sollte sein

- "templates/postgres.template.yml"

Entschuldigung, das war ein Kopierfehler. Ich habe es behoben. Nein, sie sind nicht da.

1 „Gefällt mir“

Ich habe gerade versucht, eine andere Instanz auf einem anderen Server zu aktualisieren, und es hat geklappt. Beide Server sind DO Droplets mit denselben Spezifikationen.
Ich bin mir nicht sicher, was los ist.

Mein Forum ist seit 2 Tagen ausgefallen, ich kann es nicht zum Laufen bringen. Thread nach Support verschoben. Ich hoffe, ich bekomme Hilfe.

Das ist ein viel älteres Docker-Image, das PostgreSQL 15-Pakete nicht installiert hat, daher der Fehler:

Ihre launcher-Datei wurde wahrscheinlich modifiziert und auf die Verwendung des oben genannten älteren Docker-Images festgelegt. Sie können sie auf das unten hervorgehobene neueste Image ändern und dann erneut versuchen, neu zu erstellen. (Sichern Sie vorher notwendige Backups.)

2 „Gefällt mir“

Danke für die Antwort. Ich habe gerade überprüft und in der Launcher-Datei scheint die Basis die neueste zu sein.

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

Beim Neuerstellen wird jedoch immer noch das ältere Image verwendet. Woher wird dieses ältere Image bezogen? Wie kann ich das überprüfen?

Es könnte auch als base_image in Ihrer app.yml-Datei definiert werden. Wenn Sie das finden, können Sie die Zeile einfach auskommentieren (oder entfernen).

Wenn das nicht hilft, können Sie stattdessen eine rekursive Suche nach einem Teil dieser Zeichenkette versuchen.

grep --exclude-dir shared -rI 20240708 /var/discourse
3 „Gefällt mir“

Es hat funktioniert. Vielen Dank für Ihre Hilfe.

1 „Gefällt mir“

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