

Postgres公式イメージにslimタグは無い、OSはbookwormに揃える
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
DockerのベースイメージをAlpineにするかDebian系にするかで色々調べていて、Postgres公式イメージ周りで確認できたことがあったのでメモ。
結論
- Postgres公式イメージに
slimタグは無い - OSはbookwormに揃える
何を確認したか
ローカル開発環境とLambda本番環境でOSを揃えたくて、Node/Python/PHP/Java/Goあたりのイメージを見ながら方針を決めていた。この辺りはDebianベースのタグが揃っているので問題なかったが、Postgresだけ様子がおかしかった。
postgres:bookworm-slim のようなタグを探しても見つからない。最初は見落としかと思ったけど、公式のタグ一覧を見る限り実在しない。
Postgres公式イメージのタグ構成
現行のPostgres公式イメージ(Docker Hub / docker-library)は、Debianの世代コードネームをベースにタグが切られている。
bookwormalpine(バージョン別にalpine3.23/alpine3.24など)
slim は無い。Node.jsやPythonの公式イメージには slim タグがあるので、そのノリでPostgresにもあるだろうと思い込んでいたが、これはPostgres特有の事情だった。
OS統一方針
flowchart TD
A[OSを統一したい] --> B{Postgres公式イメージに<br/>slimタグある?}
B -- ない --> C[bookwormでの通常タグを採用]
C --> D[Node/Python/PHP/Java/Goも<br/>bookwormに統一]
Postgresだけ他と違うベースにするのは統一の意味が薄れるので、全部bookwormに寄せる方針にした。
サイズ比較についての補足
Alpineベースは軽量(数MBオーダー)で、Debian系(bookworm)はそれよりだいぶ大きくなる、という一般論自体は間違っていない。ただし「Alpineの何倍」という具体的な倍率は、公式ドキュメントで直接比較された数字ではなく、その場で出した目安の域を出ない。実際のイメージサイズはパッケージ構成でも変わるので、倍率をそのまま採用するのはやめた。
分かったこと
- 「Xの公式イメージにあるタグ体系が、Yの公式イメージにも同じようにある」とは限らない(
slimはPostgresには無い) - OSを統一する場合、各言語のイメージだけでなくPostgresなどミドルウェア側のタグ構成も個別に確認した方がいい