環境
- Docker Compose V2
背景
Docker Compose、使ってるか?便利だよな。
ところで、最近docker compose up
した時に、こんな警告が出ないか?
version is obsolete
「version
はもう古い」って言われてるわけだ。
じゃあ、なんで不要になったのか、そろそろちゃんと理解しとくか。
Compose Specificationへの統一
Docker Composeは、2019年頃からCompose Specificationってやつを基準にするようになったんだ。
この仕様だと、トップレベルのversion
は、昔のバージョンとの互換性のために残されてたんだけど、実際には「参考情報」程度のものでしかなかった。
Compose Specificationでは、Composeファイルのスキーマは常に最新版が使われるから、version
を指定する必要がなくなったってわけ。
Docker Compose V2の登場
2020年にリリースされたDocker Compose V2(docker compose
コマンド)では、さらに設計が見直された。
V2では、version
プロパティは完全に無視されて、常に最新のスキーマが使われる。だから、もう書かなくていいんだ。
非推奨化と警告
そして2023年以降、Dockerの更新で、version
が書かれたComposeファイルを使うと、さっきの「version
is obsolete」って警告が出るようになった。
これは、みんなに不要な設定を消して、新しい仕様に慣れてもらうためだな。
歴史的な経緯を整理すると...
- 昔はComposeファイル形式に1.x、2.x、3.xとかバージョンがあって、混乱しがちだった。
- そこで、Compose Specificationに統一されて、バージョン指定が不要になった。
結論
もうversion
は書かなくてOK。スッキリしたComposeファイルを心がけよう。