[英]docker-compose: no declaration was found in the volumes section
Im trying to use Docker-Compose on Microsoft Windows to create a stack for Seafile.我正在尝试在 Microsoft Windows 上使用 Docker-Compose 为 Seafile 创建堆栈。
The error message after creating is:创建后报错信息为:
Deployment error failed to deploy a stack: Named volume “C:/Users/Administrator/Docker/Volumes/Seafile/Mysql:/var/lib/mysql:rw” is used in service “db” but no declaration was found in the volumes section.部署错误无法部署堆栈:命名卷“C:/Users/Administrator/Docker/Volumes/Seafile/Mysql:/var/lib/mysql:rw”用于服务“db”但未在卷中找到声明部分。 : exit status 1 : 退出状态 1
Here's my problematic docker-compose.yaml
file:这是我有问题的docker-compose.yaml
文件:
version: '2'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- C:/Users/Administrator/Docker/Volumes/Seafile/Mysql:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "9000:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- C:/Users/Administrator/Docker/Volumes/Seafile/Seafile:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_dev # Requested, the value shuold be root's password of MySQL service.
- TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=asecret # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not.
- SEAFILE_SERVER_HOSTNAME=docs.seafile.com # Specifies your host name if https is enabled.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
If you see the error " no declaration was found in the volumes section " - probably you are not declaring the volumes from the root section.如果您看到错误“没有在卷部分中找到声明” - 可能您没有从根部分声明卷。
The error message can cause confusion.错误消息可能会导致混乱。 Here how to do it correctly:这里如何正确地做到这一点:
...
services:
...
volumes:
- a:/path1
- b:/path2
...
volumes:
a:
b:
...
I know that this could be somehow scattered and I know Docker could handle it differently in another universe, but at the current version it does it in this way: the root section declares the volume, while the services section just use them.我知道这可能会以某种方式分散并且我知道 Docker 可以在另一个宇宙中以不同的方式处理它,但在当前版本中它是这样处理的:根部分声明卷,而服务部分只使用它们。
Let me know if this was your problem.让我知道这是否是您的问题。
More info:更多信息:
https://docs.docker.com/storage/volumes/#use-a-volume-with-docker-compose https://docs.docker.com/storage/volumes/#use-a-volume-with-docker-compose
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.