# tver 用 PostgreSQL スタック(Synology ds923p / 192.168.10.201) # # 配置先: ds923p の Container Manager「プロジェクト」 # /volume1/docker/tver-db/ に本ファイルを compose.yaml として配置する。 # パスワードは同じディレクトリの .env(POSTGRES_PASSWORD)から注入し、 # このファイルには実値を書かない。 # # 注意(初回起動チェックポイント): # 起動前に /volume1/docker/tver-db/pgdata を作成する。 # 初回起動後は Container Manager のヘルス状態とログを確認し、 # "database system is ready to accept connections" が出てからアプリを起動する。 # bind mount の所有権・権限で初期化に失敗した場合は、原因を確認してから # 名前付きボリュームへの切り替えを検討する。 services: postgres: # Debian ベースの PostgreSQL 17。initdb の UTF-8 ロケールを利用する。 image: postgres:17 container_name: tver-postgres restart: always environment: POSTGRES_USER: tver POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: tver # 初回の initdb でのみ有効。既存の pgdata には後から反映されない。 POSTGRES_INITDB_ARGS: "--encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8" ports: # [要確認] Container Manager で 15434 が未使用であることを起動前に確認する。 # DSM ファイアウォールでは dockage(192.168.10.155)だけを許可する。 - "15434:5432" volumes: - /volume1/docker/tver-db/pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U tver -d tver"] interval: 10s retries: 5