使用错误路径在WSL上编写Docker:\\?\C:\
我已经为这个问题挣扎了一天多,虽然在这里和其他地方都有类似的问题,但没有一个能真正解决我的问题。在上下文中,我使用使用错误路径在WSL上编写Docker:\\?\C:\,docker,path,docker-compose,windows-subsystem-for-linux,Docker,Path,Docker Compose,Windows Subsystem For Linux,我已经为这个问题挣扎了一天多,虽然在这里和其他地方都有类似的问题,但没有一个能真正解决我的问题。在上下文中,我使用docker没有问题,只使用docker compose 我正在WSL环境中从事一个使用docker compose的旧项目。当我跑步时: docker-compose -f /srv/etc/docker/docker-compose.yml -f /srv/etc/docker/docker-compose.prod.yml up --build 我得到以下错误: OSErro
docker
没有问题,只使用docker compose
我正在WSL环境中从事一个使用docker compose的旧项目。当我跑步时:
docker-compose -f /srv/etc/docker/docker-compose.yml -f /srv/etc/docker/docker-compose.prod.yml up --build
我得到以下错误:
OSError: Can not read file in context: \\?\C:\Users\<path>\venv\bin\python
OSError:无法读取上下文中的文件:\\?\C:\Users\\venv\bin\python
其他有类似问题的人的路径从/mnt/c
开始,这可以通过将/c
装载到该目录来解决。然而,我的错误路径与我在类似问题上看到的其他路径不匹配
不管怎样,我尝试了安装解决方案,但它并没有改变我的问题
我还看到有人提到docker engine使用wsl
,但是docker engine check
没有显示wsl
一个,只有一个名为current
我已经按照上面的步骤让WSL使用Docker for Windows,我在类似的问题中看到了OP之前所做的事情,或者作为解决问题的建议
所以,有几个问题:
- 有人知道Docker compose为什么要使用这样一条奇怪的路径吗
- 如何修复此路径
- 我想你遇到了
显然,通过调用docker compose,我调用的是docker for Windows的docker compose,它使用Windows的python。Python的sys.platform是“win32”(当然),这导致docker compose将该前缀添加到我的上下文中。WSL的docker compose调用正确的python,将sys.platform作为linux返回
我终于明白了,但这正是问题所在。@Tuma你是如何解决问题的?嗨@MoA。链接的github问题是由我打开的。我不记得确切的命令,但我记得我必须通过
apt install
在Windows和WSL上安装Docker。