从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.25
取v0.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图像。