首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从electron-vue前端启动docker后端

从electron-vue前端启动docker后端
EN

Stack Overflow用户
提问于 2018-06-13 04:44:17
回答 1查看 907关注 0票数 3

我正在建立一个基于电子vue的应用程序。我的电子应用程序应该从docker容器开始其后端运行。为此,我调用了一个包含docker run命令的bash文件。

代码语言:javascript
复制
    const {spawn} = require('child_process')
    const dckrrn = spawn('sh', dockercall)

    dckrrn.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`)
    })

    dckrrn.stderr.on('data', (data) => {
      console.log(`stderr: ${data}`)
    })

    dckrrn.on('close', (code) => {
      console.log(`child process exited with code ${code}`)
    })

在开发模式下一切正常,但当我在打包的应用程序中尝试它时,它会抱怨:

代码语言:javascript
复制
stderr: pathtobashscript.sh line 13 docker: command not found.

由于某些原因,派生的子进程似乎不知道系统上是否安装了docker。我做错了什么?实现这一目标的正确方法是什么?我应该尝试execfile函数吗?耽误您时间,实在对不起!

PS:很抱歉,我不能给你提供一个可重复的例子,后端的应用程序总数约为7 7gb。

PPS:一些有趣的小插曲:

代码语言:javascript
复制
which docker

不返回任何内容,并且:

代码语言:javascript
复制
pwd

返回:/

PPPS:我尝试在bash脚本的开头包含docker路径,但没有成功:

代码语言:javascript
复制
PATH="/usr/local/bin/docker:${PATH}"

导出路径

4PS:通过向环境添加shell: true,我设法让docker运行起来。我现在遇到的问题是docker文件夹映射不再有效。因此,我想我还必须以某种方式使它们对env可见。

代码语言:javascript
复制
const {spawn} = require('child_process')
const dckrrn = spawn('sh', dockercall, {
  env: {
    shell: true
  }
})
EN

回答 1

Stack Overflow用户

发布于 2018-06-14 18:22:34

通过将shell: true添加到env来解决:

代码语言:javascript
复制
const {spawn} = require('child_process')
const dckrrn = spawn('sh', dockercall, {
  env: {
    shell: true
  }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50825566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档