从Docker中的Node应用程序访问文件系统

我有一些问题试图访问Docker容器内的文件系统; 我不断收到这个问题:

fs.access(path, fs.R_OK & fs.W_OK, function (err) { ^ TypeError: Object #<Object> has no method 'access' 

我想要做的是在创build文件之前检查文件系统中的访问权限。

path和错误是由以下代码生成的:

 var fs = require('fs'); var path = require('path'); var rootPath = path.dirname(require.main.filename); fs.access(rootPath, fs.R_OK & fs.W_OK, callback); 

我该如何解决这个问题?

跑:

 docker exec -it [name of container] bash 

然后:

 node --version 

并确保您正在运行的节点与Docker之外的节点相同。 在我的情况下

 RUN apt-get install -y nodejs 

我曾经在v0.10.25安装节点,将v0.10.25v0.10.25 ,不支持我使用的fs模块。

我通过将下面的两个命令添加到我的Dockerfile中来修复它:

 RUN curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash - RUN sudo apt-get install --yes nodejs 

注:我的修补程序是为Ubuntu的docker图像。