Dockerode适用于节点,但不适用于Webpack

时间:2017-06-22 19:28:43

标签: javascript node.js docker webpack

我正在尝试编写一个可以启动Docker容器的Web应用程序。 因此,我正在使用 dockerode 模块。 短模块看起来像这样:

//index.js

var Docker = require('dockerode');
var docker = new Docker({socketPath: '/var/run/docker.sock'});
docker.buildImage({
    /*
    Building image over here...
    */
});

使用如下节点运行此JavaScript文件:

node index.js

工作得很好。我的本地Docker安装将构建一个新映像,然后创建一个新容器。最后,这个容器将启动。

但是,现在我尝试使用 Webpack 将此模块添加到Web应用程序。

但现在的问题是:使用 webpack.config.js 属性时

target: 'web'

Webpack成功构建了该文件,但在打开网站时,我收到了这个问题:

Uncaught TypeError: stat is not a function
    at loop (gen.js:27528)
    at onnextentry (gen.js:27640)
    at Object.exports.pack (gen.js:27643)
    at Docker.buildImage (gen.js:22180)
    at buildImage (gen.js:21892)
    at Object.<anonymous> (gen.js:21888)
    at Object.<anonymous> (gen.js:21926)
    at __webpack_require__ (gen.js:20)
    at Object.exports.initBackend (gen.js:21874)
    at initBackends (gen.js:11552)

我无法找到有关此问题的任何内容。生成的JS文件中带下划线的行是这一行:

stat(nextAbs, function (err, stat) {

有关为什么我可以使用节点构建docker镜像而不是在浏览器内部调用时的任何建议?甚至可以通过浏览器启动Docker容器吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

  

甚至可以通过浏览器启动Docker容器吗?

不。浏览器无法与包括Docker套接字在内的任何系统套接字进行通信。