Docker Compose报告version属性已过时的警告问题及解决
作者:CarlowZJ
根据你的描述,运行 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。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
