无法使用 docker-compose 挂载文件
Unable to mount a file with docker-compose
I 运行 docker-compose -f docker-compose.prod.yml up
我立即得到错误:
ERROR: for frontend Cannot start service frontend: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\"/c/Users/James/Projects/mysite/frontend/conf/nginx/mysite.template\\" to rootfs \\"/var/lib/docker/aufs/mnt/e7a2a699ae3e9ede0dd60b7cfdebb7f2d3adf71e8175157f3c9e88d3285796d2\\" at \\"/var/lib/docker/aufs/mnt/e7a2a699ae3e9ede0dd60b7cfdebb7f2d3adf71e8175157f3c9e88d3285796d2/etc/nginx/conf.d/default.conf\\" caused \\"not a directory\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
我的 mysite.template
文件存在。我正在使用 docker-machine
的数字海洋。在开发中,我没有在同一个 OS (ubuntu 16) 上遇到这个问题 运行ning。我在 windows 上使用 docker 工具箱进行开发。
这是来自 docker-compose.prod.yml
的前端配置:
frontend:
image: nginx:stable-alpine
restart: always
networks:
- web
- default
volumes:
- ${PWD}/frontend/conf/nginx/mysite.template:/etc/nginx/conf.d/default.conf
- ${PWD}/frontend/public:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.basic.frontend.rule=Host:mysite.com"
- "traefik.basic.port=80"
我遵循了 docs 的说明。知道出了什么问题吗?
您只能将主机目录作为卷装载,而不是 Docker 中的单个文件。
在您的 volumes
定义中,而不是:
- ${PWD}/frontend/conf/nginx/mysite.template:/etc/nginx/conf.d/default.conf
你应该这样做:
- ${PWD}/frontend/conf/nginx:/etc/nginx/conf.d
I 运行 docker-compose -f docker-compose.prod.yml up
我立即得到错误:
ERROR: for frontend Cannot start service frontend: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\"/c/Users/James/Projects/mysite/frontend/conf/nginx/mysite.template\\" to rootfs \\"/var/lib/docker/aufs/mnt/e7a2a699ae3e9ede0dd60b7cfdebb7f2d3adf71e8175157f3c9e88d3285796d2\\" at \\"/var/lib/docker/aufs/mnt/e7a2a699ae3e9ede0dd60b7cfdebb7f2d3adf71e8175157f3c9e88d3285796d2/etc/nginx/conf.d/default.conf\\" caused \\"not a directory\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
我的 mysite.template
文件存在。我正在使用 docker-machine
的数字海洋。在开发中,我没有在同一个 OS (ubuntu 16) 上遇到这个问题 运行ning。我在 windows 上使用 docker 工具箱进行开发。
这是来自 docker-compose.prod.yml
的前端配置:
frontend:
image: nginx:stable-alpine
restart: always
networks:
- web
- default
volumes:
- ${PWD}/frontend/conf/nginx/mysite.template:/etc/nginx/conf.d/default.conf
- ${PWD}/frontend/public:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.basic.frontend.rule=Host:mysite.com"
- "traefik.basic.port=80"
我遵循了 docs 的说明。知道出了什么问题吗?
您只能将主机目录作为卷装载,而不是 Docker 中的单个文件。
在您的 volumes
定义中,而不是:
- ${PWD}/frontend/conf/nginx/mysite.template:/etc/nginx/conf.d/default.conf
你应该这样做:
- ${PWD}/frontend/conf/nginx:/etc/nginx/conf.d