【问题标题】:Dockerode works with node, but not via WebpackDockerode 与节点一起工作,但不能通过 Webpack
【发布时间】:2017-11-26 05:33:17
【问题描述】:

我正在尝试编写一个可以启动 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) {

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

【问题讨论】:

    标签: javascript node.js docker webpack


    【解决方案1】:

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

    不是。浏览器无法与任何系统套接字通信,包括 Docker 套接字。

    【讨论】:

    • 感谢您的回复!
    猜你喜欢
    • 2018-01-14
    • 2020-01-20
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多