Skip to content

Commit 3f919d3

Browse files
committed
db-init・db-migrateが起動のたびに匿名ボリュームを作るのをやめる
ベースのpostgres公式イメージが VOLUME /var/lib/postgresql/data を宣言しているため、 そこに何もマウントしていない db-init・db-migrate では、コンテナを作るたびに空の 匿名ボリュームが1つずつ作られて溜まっていた(db本体はbindマウントを当てているので 発生しない)。どちらのサービスもPGDATAは使わず psql クライアントとしてしか 動かないので、使い捨てのtmpfsを当てて抑止する。 3つのcomposeファイル(本番・開発・standalone)に同じ対処を入れた。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent b69ccdd commit 3f919d3

3 files changed

Lines changed: 24 additions & 0 deletions

File tree

docker-compose.dev.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ services:
3535
PGUSER: travel_log
3636
PGPASSWORD: travel_log
3737
PGDATABASE: travel_log
38+
# ベースのpostgresイメージが宣言する VOLUME /var/lib/postgresql/data に何も
39+
# マウントしないと、起動のたびに空の匿名ボリュームが作られて溜まっていく。
40+
# このサービスはPGDATAを使わない(psqlクライアントとしてしか動かない)ので、
41+
# 使い捨てのtmpfsを当てて抑止する
42+
tmpfs:
43+
- /var/lib/postgresql/data
3844
restart: "no"
3945

4046
app:

docker-compose.standalone.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ services:
6161
- type: bind
6262
source: *db-dir
6363
target: /db
64+
# ベースのpostgresイメージが宣言する VOLUME /var/lib/postgresql/data に何も
65+
# マウントしないと、起動のたびに空の匿名ボリュームが作られて溜まっていく。
66+
# db-init/db-migrateはPGDATAを使わない(psqlクライアントとしてしか動かない)ので、
67+
# 使い捨てのtmpfsを当てて抑止する
68+
tmpfs:
69+
- /var/lib/postgresql/data
6470
command: ["prepare"]
6571
restart: "no"
6672

@@ -101,6 +107,9 @@ services:
101107
PGUSER: travel_log
102108
PGPASSWORD: travel_log
103109
PGDATABASE: travel_log
110+
# 匿名ボリュームの抑止(理由は db-init 参照)
111+
tmpfs:
112+
- /var/lib/postgresql/data
104113
restart: "no"
105114

106115
app:

docker-compose.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ services:
99
user: root
1010
volumes:
1111
- ./db:/db
12+
# ベースのpostgresイメージが宣言する VOLUME /var/lib/postgresql/data に何も
13+
# マウントしないと、起動のたびに空の匿名ボリュームが作られて溜まっていく。
14+
# db-init/db-migrateはPGDATAを使わない(psqlクライアントとしてしか動かない)ので、
15+
# 使い捨てのtmpfsを当てて抑止する
16+
tmpfs:
17+
- /var/lib/postgresql/data
1218
command: ["prepare"]
1319
restart: "no"
1420

@@ -47,6 +53,9 @@ services:
4753
PGUSER: travel_log
4854
PGPASSWORD: travel_log
4955
PGDATABASE: travel_log
56+
# 匿名ボリュームの抑止(理由はdb-init参照)
57+
tmpfs:
58+
- /var/lib/postgresql/data
5059
restart: "no"
5160

5261
app:

0 commit comments

Comments
 (0)