从Docker容器内的NodeJS连接到Windowsnetworking共享驱动器

一直用这个敲我的头,并会感谢任何帮助! 我search了一下,发现了一些可能的解决scheme,但对我来说都是不行的。

我有一个nodejs应用程序在Windows中开发,现在运行在docker容器(使用节点:最新的形象)。 应用程序需要连接到一个共享的Windowsnetworking驱动器来执行读/写操作,但是当应用程序在docker容器内部运行时,它似乎并不工作(它在docker外面的windows机器上运行时工作正常) 。

networking驱动器共享文件夹看起来像这样。 分享给大家:

\\ MYSERVER \testing

Nodejs代码(不完全,但给你一个我如何访问文件的想法):

let fileLocation = "\\myserver\test\file.pdf" let readStream = fs.createReadStream(fileLocation) // When the stream is done being read, end the response readStream.on('close', () => { // End response response.status('200').end() // Remove the file fs.unlinkSync(fileLocation) }) // Stream chunks to response readStream.pipe(response) 

在windows上运行nodejs的时候,这个工作正常,但是在nodejs docker容器中运行的时候,我总是收到“ENOENT:no such file or directory”错误。 我不确定这是一个Linux操作系统(节点映像基于)还是docker权限/特权问题。 该文件确实存在。

这是我用来testing运行容器时的命令

 docker run --rm -it -p 8080:8080 myapplication:latest 

docker工人,但任何帮助表示赞赏!

尝试使用docker run -v安装卷(请参阅文档 )。

我希望它能在你的Windowsnetworking共享驱动器上工作。