Skip to content

fix(rallly,spliit): postgres のデータディレクトリを uid 70 所有にする - #396

Merged
gapul merged 1 commit into
mainfrom
fix/pg-datadir-owner
Aug 21, 2026
Merged

fix(rallly,spliit): postgres のデータディレクトリを uid 70 所有にする#396
gapul merged 1 commit into
mainfrom
fix/pg-datadir-owner

Conversation

@gapul

@gapul gapul commented Aug 21, 2026

Copy link
Copy Markdown
Owner

#394 をデプロイしたら、Rallly と Spliit の DB コンテナが両方とも起動に失敗しました。その修正です。

何が起きたか

mkdir: can't create directory '/var/lib/postgresql/18/': Permission denied
podman-spliit-db.service: Failed with result 'exit-code'

tmpfiles で 0700 root root として作っていましたが、postgres のイメージは uid 70 で動くので書き込めません。

既存の miniflux/db を見たら uid 70 所有でした。

drwx------ 19 70 100000  /var/lib/homelab/miniflux/db     ← 動いているやつ
drwx------  3  0      0  /var/lib/homelab/rallly-db       ← 落ちたやつ
drwx------  3  0      0  /var/lib/homelab/spliit-db       ← 落ちたやつ

最初からこちらに揃えるべきでした。

Calnode と Readeck が 0700 root root で動いていたのは、あの2つのイメージがコンテナ内 root で動くからです。DB だけが uid を落とすので、同じルールが通用しませんでした。前回の PR で「readeck と同じ形にした」と書いたのは、この点で雑でした。

検証

実機で 0700 70 70 のディレクトリを作り、postgres:18-alpine を当てて確認しました。

state=running
LOG:  database system is ready to accept connections

使い捨てのディレクトリで試して後片付け済みです。

デプロイ時の注意

失敗した初回起動が rallly-db/18/(root 所有)を作って残しているので、rebuild の前にそれを消す必要があります。中身は初期化に失敗した空の状態で、データはありません。

#394 をデプロイしたら両方の DB コンテナが起動に失敗した。

  mkdir: can't create directory '/var/lib/postgresql/18/': Permission denied

tmpfiles で 0700 root root で作っていたが、postgres のイメージは uid 70 で
動くので書き込めない。既存の miniflux/db を見たら uid 70 所有だったので、
最初からそちらに揃えるべきだった。

実機で 0700 70 70 のディレクトリに postgres:18-alpine を当てて、
"database system is ready to accept connections" まで到達することを確認済み。

calnode と readeck が root 所有で動いていたのは、あちらのイメージが
コンテナ内 root で動くから。DB だけが uid を落とす。
@gapul
gapul merged commit dfc05f0 into main Aug 21, 2026
5 checks passed
@gapul
gapul deleted the fix/pg-datadir-owner branch August 21, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant