通过NodeJS调用脚本时看不到Docker守护程序?

时间:2016-01-21 00:03:16

标签: node.js docker child-process

我使用NodeJS和child_process启动部署脚本。在部署脚本中是对Docker的一些调用。该脚本运行成功,但问题是当脚本通过NodeJS调用时,它表示它无法连接到Docker守护程序。"但是,当我手动调用脚本时,它很好。

相关的NodeJS脚本:

var cp = require('child_process');

cp.exec('deploy.sh', {shell: '/bin/bash', cwd: '/deploy', uid: userid.uid('ubuntu'), gid: userid.gid('ubuntu')}, function(err, stdout, stderr) {
    console.log("Output: " + stdout);
});

知道为什么会这样,以及如何修复它?我检查了输出,whoami返回了正确的用户。

编辑:我尝试在Ruby中运行脚本:

userdata = Etc.getpwnam('ubuntu')
stdout, stderr, status = Open3.capture3("./deploy.sh", :chdir=>"/deploy", :uid => userdata.uid, :gid => userdata.gid)

我得到了相同的结果 - Docker守护程序没有运行。在/var/run/

drwx------  4 root       root         80 Jan 20 21:32 docker/
-rw-r--r--  1 root       root          5 Jan 20 22:57 docker.pid
srw-rw----  1 root       docker        0 Jan 20 22:57 docker.sock=

总的来说,这件事让我觉得这是一个权限问题。

0 个答案:

没有答案