我正在尝试使用docker-compose构建一个简单的Drupal容器,但是在尝试安装命名卷时遇到错误。这是我的docker-compose.yml文件:
version: '2.1'
services:
web:
build: ./build
image: "myrmidon16/drupal-base:latest"
working_dir: "/var/www/html"
volumes:
- sites:/var/www/html/sites
links:
- "db"
ports:
- 8001:80
db:
image: "mysql:latest"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=root
- MYSQL_PASSWORD=root
- MYSQL_DATABASE=drupal-base
volumes:
- ".:/var/www/html"
ports:
- "3306"
drush:
image: "mparker17/mush"
working_dir: "/var/www/html"
volumes:
- .:/var/www/html
links:
- "db"
volumes:
sites:
driver: local
driver_opts:
type: bind
o: bind
device: ${PWD}/sites
但是当我运行docker-compose up -d
时,我得到以下错误,即使该目录存在:
ERROR: for web Cannot create container for service web: error while mounting volume with options: type='bind' device='/mnt/f/Documents/sites' o='bind': no such file or directory
我正在使用Compose v 1.21.0在Windows 10 Pro上运行Docker for Windows Edge(18.05.0-ce-rc1)。我也通过Docker for Windows共享F盘。
如果您需要任何其他信息,请与我们联系。谢谢。
在Windows上,本地驱动程序不支持任何选项。所以在您的docker-compose选项中,o:bind
无效。
根据:文档https://docs.docker.com/engine/reference/commandline/volume_create/#driver-specific-options
它适用于Windows,但您必须在device
选项中添加一个前导斜杠,例如
docker volume create \
--opt type=none \
--opt o=bind \
--opt device=/$(pwd)/grafana/dashboards \
--name grafana_dashboards
在Windows上,您不应在卷部分中创建卷。服务中的一个就足以为Windows文件系统创建一个mounth,只要它在以下位置启用:Docker-> Settings-> Shared Drives - 整个驱动器并确保在更改窗口时单击“重置凭据”密码
路径c:\ Temp \ some_dir工作,当前目录表示法(。)我不确定。