docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker Compose报告version属性已过时的警告

Docker Compose报告version属性已过时的警告问题及解决

作者:CarlowZJ

这篇文章主要介绍了Docker Compose报告version属性已过时的警告问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

根据你的描述,运行 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 将忽略它。

以下是解决方法和详细解释。

一、问题原因

Docker Compose 版本更新

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

文件格式不兼容

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

二、解决方法

1.移除version字段

打开 docker-compose.yml 文件,删除 version 字段。

例如,将文件内容从:

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

修改为:

services:
  photoprism:
    ...

2.确认 Docker Compose 版本

确保你使用的是 Docker Compose v2 或更高版本。

可以通过以下命令检查 Docker Compose 的版本:

docker-compose --version

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

docker-compose --version

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

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

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

docker-compose up -d

三、完整示例

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

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。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文