Errno::ENOENT: ファイルまたはディレクトリが見つかりません @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf

管理画面からアップデートを試みましたが、何が起こったのか分かりませんが、管理画面が真っ白になり、フロントエンドは正常でした。コマンドラインから再度アップデートを実行したところ、以下のエラーが発生しました。

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.

その他の情報

cat containers/app.yml | grep postgres

- "templates/postgres.template.yml"

どうすれば修正できますか?

私はDigitalOceanのドロップレット、Ubuntuを使用しています。それが役立つなら。

コンテナは1つだけです。

本当にその「*」は存在しますか?

以下であるべきです。

- "templates/postgres.template.yml"

すみません、コピー&ペーストのエラーでした。修正しました。いいえ、そこにはありません。

「いいね!」 1

別のサーバーで別のインスタンスを更新しようとしましたが、うまくいきました。両方のサーバーは同じスペックのDOドロップレットです。
何が起こっているのかわかりません。

フォーラムが2日間ダウンしており、復旧できません。スレッドをサポートに移動しました。助けが得られることを願っています。

これは、PostgreSQL 15 パッケージがインストールされていないはるかに古い Docker イメージであるため、エラーが発生しています。

launcher ファイルが変更され、上記の古い Docker イメージを使用するようにロックされている可能性があります。最新のイメージ(下記参照)に変更してから、再度ビルドを試してください。(事前に必要なバックアップを取ってください。)

「いいね!」 2

返信ありがとうございます。確認したところ、launcher ファイルの base は最新のものになっているようです。

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

しかし、再ビルド中に古いイメージが使用されています。この古いイメージはどこから取得されているのでしょうか?確認方法を教えていただけますか?

app.yml ファイルの base_image として定義することもできます。それを見つけた場合は、その行をコメントアウト(または削除)するだけで済みます。

それでも解決しない場合は、代わりにその文字列の一部を再帰的に検索してみてください。

grep --exclude-dir shared -rI 20240708 /var/discourse
「いいね!」 3

うまくいきました。ご協力いただき誠にありがとうございます。

「いいね!」 1

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