我有一个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'
在Linux(Ubuntu)的Windows子系统中,bash shell Icd
到/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 v123.2
我遇到了这个问题,尝试了几次。。。
- Windows 10版本18.03 17134.1006
- Docker版本18.09.7,构建2d0083d
- docker compose版本1.24.1,内部版本4667896b
出现上述错误时,我正在运行docker-compose up --build
。我的一个绑定是针对/home/c/folder
的,这是运行时出现问题的地方:
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机器,错误出现了。
我想添加此指南作为参考:
- 适用于Windows的Docker
- 尝试在WSL中运行
我不得不承认这些链接可能在某种程度上有所帮助,但我无法确认它们最终是否有任何效果。尽管我的答案很模糊,但我还是想分享一下,因为这可以在此类故障排除过程中提供一些细节。
*****编辑:
中总结此类故障排除的其他资源