我在 Windows 上使用 docker,并且我的 src 目录作为网络共享安装在 docker 容器内(而不是 COPY)。所以/var/app/server
在 docker 内部实际上是一个网络共享,它在我的主机上的实际位置是C:\...project\server
. [旁注,我不熟悉 docker 在 linux 上的工作方式,就像它仍然使用网络共享在 linux 上挂载一样吗?因为如果不是,那么这可能只是 Windows 问题]
我正在使用使用 的 babel-watch mkfifo
,并且由于它在 docker 容器 (VM) 中运行,因此 mkfifo 无法在该网络共享目录中创建文件管道。[旁注:babel-watch 实际上确实可以在 docker 外部的 Windows 上使用 cygwin 运行,该 cygwin 具有 mkfifo.exe 实用程序]
server_1 | mkfifo: cannot create fifo `/var/app/server/116521-16-pz2v9g.ma216skyb9': Operation not permitted
server_1 | Unable to create named pipe with mkfifo. Are you on linux/OSX?
有什么解决方法吗?
我尝试编辑 babel-watch 源以让 mkfifo 在其中创建一个文件,/var/app
或者/var
改为(它仍然在 docker 容器的领域内),虽然这种方式mkfifo
确实有效,但 babel-watch 看不到文件更改。我想从根本上说,文件更改信息无法通过网络共享屏障/var/app/server
(挂载点)传播到/var/app
(docker内的真实目录)。