我正在尝试编写一个可以启动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容器吗? 提前谢谢。
答案 0 :(得分:2)
甚至可以通过浏览器启动Docker容器吗?
不。浏览器无法与包括Docker套接字在内的任何系统套接字进行通信。