从Docker容器中的NodeJS连接到Windows网络共享驱动器

时间:2017-12-06 13:37:58

标签: node.js docker fs

一直在用这个敲打我的头,并感谢任何帮助!我做了搜索,发现了一些潜在的解决方案,但对我来说都不行。

我有一个在windows中开发的nodejs应用程序,现在在docker容器中运行(使用node:latest image)。应用程序需要连接到共享的Windows网络驱动器来执行读/写操作,但是当应用程序在docker容器内运行时,它似乎不起作用(当它在我的Windows机器上运行时工作正常泊坞窗)。

网络驱动器共享文件夹看起来像这样。与大家分享:

\\ MYSERVER \测试

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中运行时工作正常,但我一直得到一个" ENOENT:没有这样的文件或目录"在nodejs docker容器内运行时出错。我不确定这是Linux OS(节点映像所基于的)还是docker permission / priviledge问题。该文件确实存在。

这是我用来测试我运行容器的命令

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

Docker的新功能,但感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试使用docker run -v装载音量(请参阅documentation)。

我希望它可以在Windows网络共享驱动器上运行。