> 技术文档 > 解决 Docker Compose 报告 version 属性已过时的警告_the attribute `version` is obsolete, it will be ig

解决 Docker Compose 报告 version 属性已过时的警告_the attribute `version` is obsolete, it will be ig

目录

一、问题原因

二、解决方法

1. 移除 version 字段

2. 确认 Docker Compose 版本

3. 重新运行 docker-compose up -d

三、完整示例

四、总结


根据你的描述,运行 docker-compose up -d 时出现了以下警告:

time=\"2025-02-20T13:13:34+08:00\" level=warning msg=\"D:\\\\Photoprism\\\\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 将忽略它。以下是解决方法和详细解释。


一、问题原因

  1. Docker Compose 版本更新
    从 Docker Compose v2 开始,version 属性已不再需要。Docker Compose v2 自动识别文件格式,不再依赖 version 字段。

  2. 文件格式不兼容
    如果你的 docker-compose.yml 文件仍然包含 version 字段,Docker Compose v2 会发出警告并忽略该字段。


二、解决方法

1. 移除 version 字段

打开 docker-compose.yml 文件,删除 version 字段。例如,将文件内容从:

yaml复制

version: \'3.5\'services: photoprism: ...

修改为:

yaml复制

services: photoprism: ...
2. 确认 Docker Compose 版本

确保你使用的是 Docker Compose v2 或更高版本。可以通过以下命令检查 Docker Compose 的版本:

bash复制

docker-compose --version

如果版本低于 v2,可以通过以下命令升级 Docker Compose:

bash复制

docker-compose --version

如果你使用的是 Docker Desktop,Docker Compose v2 已集成在其中,无需手动安装。

3. 重新运行 docker-compose up -d

保存文件后,重新运行以下命令启动服务:

bash复制

docker-compose up -d

三、完整示例

以下是移除 version 字段后的完整 docker-compose.yml 文件示例:

yaml复制

services: photoprism: image: photoprism/photoprism:latest container_name: photoprism restart: unless-stopped security_opt: - seccomp:unconfined ports: - \"2342:2342\" environment: PHOTOPRISM_ADMIN_PASSWORD: \"YourPasswordHere\" # 管理员密码 PHOTOPRISM_UPLOAD_NSFW: \"true\" # 允许上传 NSFW 内容 PHOTOPRISM_DEBUG: \"false\"  # 禁用调试模式 PHOTOPRISM_PUBLIC: \"false\"  # 设置为私有模式 PHOTOPRISM_READONLY: \"false\"  # 禁用只读模式 volumes: - \"C:/data/docker/photoprism/storage:/photoprism/storage\" # 持久化存储路径 - \"C:/data/docker/photoprism/Pictures:/photoprism/originals\" # 原始照片路径 mariadb: image: mariadb:10.11 container_name: photoprism-db restart: unless-stopped security_opt: - seccomp:unconfined command: mariadbd --innodb-buffer-pool-size=512M --lower-case-table-names=1 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120 volumes: - \"database:/var/lib/mysql\" environment: MARIADB_AUTO_UPGRADE: \"1\" MARIADB_INITDB_SKIP_TZINFO: \"1\" MARIADB_DATABASE: \"photoprism\" MARIADB_USER: \"photoprism\" MARIADB_PASSWORD: \"YourDbPassword\" MARIADB_ROOT_PASSWORD: \"YourDbRootPassword\"volumes: database: driver: local

四、总结

通过移除 docker-compose.yml 文件中的 version 字段,你可以解决 Docker Compose v2 报告的警告。确保你使用的是 Docker Compose v2 或更高版本,并重新运行 docker-compose up -d 命令以启动服务。希望这些步骤能帮助你顺利部署 PhotoPrism。如果有任何问题,欢迎随时交流。