🐳
【Docker】postgres image のバージョン互換性対応
はじめに
Postgresql の Docker image が立ち上がらない事象の対応です。
原因としては、docker-compose.yml
に記載している lastest
(最新指定) が原因で起きた事象です。
image: postgres:latest
対象 Error
Error 内容を確認する為に、-d
はつけずに実行。
$ docker-compose up
[+] Running 1/0
⠿ Container shift_schedule-db-1 Created 0.0s
Attaching to shift_schedule-db-1
shift_schedule-db-1 |
shift_schedule-db-1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
shift_schedule-db-1 |
shift_schedule-db-1 | 2021-10-10 06:05:15.565 UTC [1] FATAL: database files are incompatible with server
shift_schedule-db-1 | 2021-10-10 06:05:15.565 UTC [1] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.0 (Debian 14.0-1.pgdg110+1).
shift_schedule-db-1 exited with code 1
どうやら、既に postgresql を version 13 で初期化しているのに、docker-compose.yml
では lastest
と、最新指定でファイルを書いていたのが Error 原因のようです。
今回の対応
対象 volume data を削除
今回は、DBの中身を一掃しても問題なかったので、volumes
先 の data
を削除して対応しました。
-
Docker DashBoard で 対象の volume data を確認
ここで、IN USE
となっていて削除できなかったので、docker-compose down
で一旦コンテナを削除しました。
-
3点リーダ から
Remove
を選択
-
Remove を選択
以上で、volume data
を削除することができますね。
他に考えられる対応
image: postgres:latest
latest
で最新にせず 対応バージョン
で image を指定する。
今回の Error に合わすなら、PostgreSQL version 13
に合わせるとよさそうです。
image: postgres:13.0
まとめ
Error 文を確認することで、結構すんなり対応することができました!
引き続き、次の作業にかかりたいと思います!!
ありがとうございました!
Discussion