我的最后一行是Dockerfile
:
CMD ["./watch.sh"]
仅运行npm run watch
。
在Linux中,一切正常。
但在Linux的Windows 10 Subsytem(WSL)中,docker会抛出一个错误,指出找不到该文件。在运行Dockerfile
的另一个python <SOMEFILE.PY>
中,它也表示找不到文件。
我已经在/etc/wsl.conf
中设置了这些:
[automount]
root = /
options = "metadata"
我在用户名进程中运行了docker,并且已经将我的名字放入了docker组中。因此,我不会以sudo
的身份运行它。文件权限也存在于我的帐户中。
编辑:
我只是意识到,似乎我需要以docker
的身份运行sudo
客户端。
在Bash WSL中,似乎找不到驻留在Windows中的docker引擎,无法通过tcp:// localhost:2375
$ sudo usermod -aG docker root
$ sudo docker build -t build-minimal .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
当我不使用sudo运行docker时,它就可以工作。
答案 0 :(得分:2)
找到了! 答案是文件权限。
我打算使用WSL是为了拥有完全兼容的Linux环境,但是仍然能够使用Windows。因此,必须正确完成Linux和Windows之间的文件共享。
我以前的错误仅仅是从Linux到我的Windows文件(就是Python Flask应用)的符号链接。不好,因为文件权限无法正确存储/读取。
解决方案:
git clone