docker-compose提示version告警原因

问题

docker-compose up -d 总是提示version,强迫症很难受。
警告信息:

WARN[0000] ...docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion

说明:

docker-compose.yml 文件中的 version: 字段在 Docker Compose v1.27.0+ 和 v2 中已经被弃用,不再需要指定,它将被忽略。


解决

安全移除 version 字段即可。 例如,将:

1
2
3
4
5
version: "3.8"

services:
mariadb:
...

改为:

1
2
3
services:
mariadb:
...

即可彻底消除警告,对 Compose 功能没有影响,现代版本会自动使用最合适的 schema。


为什么被弃用?

在较早版本中,version 决定了 docker-compose 使用的 schema 行为(如支持的语法、功能)。但从 Docker Compose v1.27(2020 年)起,Compose 文件 schema 已统一,自动向后兼容,不再需要用户显式指定 version


#查看你使用Compose版本

1
2
3
4
docker compose version

# 或旧版
docker-compose version

只要版本 ≥ 1.27.0(大多数都远远高于了),就可以放心删除 version: