我有一个docker-compose.yml
文件,其中正在使用bind
挂载卷,如下所示:
version: '3.3'
services:
backend:
image: gitlab:5000/foo/bar/backend:${CI_COMMIT_SHA}
volumes:
- type: bind
source: ../backend
target: /var/www/html
- type: bind
source: ../backend
target: /var/envs
environment:
SRV_ENV: 'development'
在Windows Subsystem for Linux(Ubuntu)bash shell中,我将
cd
转换为/home/urig/src/foo/bar/deploy
。当我然后运行时:
docker-compose -f docker-compose.yml down
我收到以下错误:
starting server...
Creating network "deploy_default" with the default driver
Creating deploy_backend_1 ... error
ERROR: for deploy_backend_1 Cannot create container for service backend: invalid mount config for type "bind": bind source path does not exist: /home/urig/src/foo/bar/backend
ERROR: for backend Cannot create container for service backend: invalid mount config for type "bind": bind source path does not exist: /home/urig/src/foo/bar/backend
ERROR: Encountered errors while bringing up the project.
ERROR: No container found for backend_1
为什么WSL无法找到源文件夹,我该如何解决?
我正在使用Docker Desktop(适用于Windows)CE v2.0.0.2。 Docker Engine v18.09.1,docker-compose v1.23.2
最佳答案
我遇到了这个问题,花了我几次尝试...
出现上述错误时,我正在运行
docker-compose up --build
。我对/home/c/folder
的绑定(bind)之一,这是运行时出现问题的地方:Creating sytraining11_sytraining11-codevalidation_1 ... done
compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='sytraining11', service='sytraining11-codevalidation', number=1)
compose.parallel.feed_queue: Pending: set()
compose.parallel.parallel_execute_iter: Finished processing: <Service: sytraining11-codevalidation>
compose.parallel.feed_queue: Pending: set()
ERROR: for sytraining11-dev Cannot create container for service sytraining11-dev: invalid mount config for type "bind": bind source path does not exist: /home/c/folder
ERROR: compose.cli.main.main: Encountered errors while bringing up the project.
解决方案是这样的:我将挂载点从
/home/c/folder
更改为/mnt/f/folder
,一切重新开始正常工作。注意:当我设置WSL + docker时,
docker-compose
可以正常工作约两天。但是,我在Windows中重新启动了Docker计算机,并显示了错误。我想添加此指南作为参考:
我必须承认这些链接可能在某种程度上有所帮助,但是我无法确认它们最终是否有任何效果。尽管我的回答含糊不清,但我还是想分享一下,因为这可以在此类故障排除过程中提供一些详细信息。
*****编辑:
总结这种类型的疑难解答here的其他资源
关于docker - 为什么在Windows Subsystem for Linux中从Windows上的Docker上获得 “bind source path does not exist”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54513865/