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

Access filesystem from Node app in Docker

我在尝试访问 docker 容器内的文件系统时遇到一些问题;我一直遇到这个问题:

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

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

路径和错误由以下代码生成:

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

我以前在 docker 中安装节点 docker 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 图片。