the attribute is obsolete の Warning
久しぶりに docker compose を使ったら以下の Warning が出ました
1
WARN[0000] docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
version が廃止されているらしく、無視されてしまったのですが必須フィールドだった記憶。今はそんなこともなく不要になっているらしい。
元々2とか3とかでファイルの記述や使える機能が違うので、それを明示的に宣言する必要がありましたがcomposeの仕様が統一されたことで不要になったようです。
変更前後の比較
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 変更前
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 だったのでどんだけ使ってなかったんだ、、、っていう。
1
2
% docker compose version
Docker Compose version v2.38.2-desktop.1
でも version はおまじない的に書いている面が強かったですし、V2 になったことで消えるならそれはとても嬉しいので消しました。
チーム開発での注意点
基本的には compose をアップデートしなよ、のスタンスではあるのですが一部の会社ではcomposeが古い人と新しい人が混在しそうなので、メンバにアップデートしてもらうか Warning を飲むか、になると思います。
This post is licensed under
CC BY 4.0
by the author.