the attribute is obsolete の Warning
久しぶりに docker compose を使ったら以下の Warning が出ました
久しぶりに docker compose を使ったら以下の Warning が出ました
WARN[0000] docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusionversion が廃止されているらしく、無視されてしまったのですが必須フィールドだった記憶。今はそんなこともなく不要になっているらしい。
元々2とか3とかでファイルの記述や使える機能が違うので、それを明示的に宣言する必要がありましたがcomposeの仕様が統一されたことで不要になったようです。
変更前後の比較#
# 変更前version: '3.8'services: web: image: nginx:latest ports: - "8080:80" db: image: postgres:15 environment: POSTGRES_PASSWORD: example
# 変更後(versionを削除)services: web: image: nginx:latest ports: - "8080:80" db: image: postgres:15 environment: POSTGRES_PASSWORD: exampleシンプルに version の行を削除するだけで OK です。
ちなみに、この Warning は調べると v2.25.0 から出だしたとのこと。
https://github.com/docker/compose/issues/11628
自分の compose のバージョンを確認したら v2.38.2 だったのでどんだけ使ってなかったんだ、、、っていう。
% docker compose versionDocker Compose version v2.38.2-desktop.1でも version はおまじない的に書いている面が強かったですし、V2 になったことで消えるならそれはとても嬉しいので消しました。
チーム開発での注意点#
基本的には compose をアップデートしなよ、のスタンスではあるのですが一部の会社ではcomposeが古い人と新しい人が混在しそうなので、メンバにアップデートしてもらうか Warning を飲むか、になると思います。