解决 Docker Compose 报告 version 属性已过时的警告
根据你的描述,运行 docker-compose up -d
时出现了以下警告:
time="2025-02-20T13:13:34+08:00" level=warning msg="D:Photoprismdocker-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
字段。例如,将文件内容从:
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。如果有任何问题,欢迎随时交流。