如何在docker上运行电子应用程序
我已经创build了一个托pipe一个电子应用程序,这是一个聊天客户端的存储库叉: https : //github.com/Serkan-devel/BetterDiscordApp-docker 。
我正在尝试做的是创build一个Docker容器,它的GUI挂在自己的屏幕上,就像https://blog.jessfraz.com/post/docker-containers-on-the-desktop/ 。
我创build的dockerfile如下所示:
FROM node:slim COPY . /usr/scr/app #RUN rm bdstart.sh RUN npm install --save-dev electron RUN npm install #ENV FRESHINSTALL=true CMD ["/usr/scr/app/start.sh"]
start.sh文件如下所示:
./node_modules/.bin/electron ./src
在构builddocker镜像并执行之后
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --device /dev/snd dixord
我得到错误代码:
standard_init_linux.go:175: exec user process caused "exec format error"
尽pipe我使文件可执行并使用了正确的amd64架构。
有没有人想过如何使电子GUI的docker工作?
我会尽力在这个答案中帮助你 – 太长了评论。
我在我的Win10上尝试了你的Docker文件,并且遇到了同样的问题。 但是我想通过添加所需的软件包并成功创builddocker镜像来解决这个问题。 这里是Dockerfile
FROM node:slim COPY . /usr/scr/app #RUN rm bdstart.sh RUN apt-get update # I think you need to install following RUN apt-get -y install libgtkextra-dev libgconf2-dev libnss3 libasound2 libxtst-dev libxss1 RUN npm install --save-dev electron RUN npm install CMD ["/usr/scr/app/start.sh"]
这里是你的start.sh
#!/bin/sh ./node_modules/.bin/electron ./src
其实我没有访问您的文件等,但与此DockerFile能够创builddocker形象没有问题。 我也走进docker集装箱,检查是否可以运行电子工作 。
如果你想进入容器,你只需要build立docker图像。 我已经完成了(最简单的方式)下面的命令( 打开控制台,Dockerfile所在并运行) :
docker build -t test-image .
成功构build映像后,您可以运行容器。 如果有任何问题,我build议你用bash
入口点运行容器并debugging什么失败 – bash将在你input以下脚本的同一个控制台中打开)
docker run -it test-image bash
我发现这个问题很有用,最后我想出了这篇文章,使它更容易:
https://medium.com/@calbertts/developing-electron-apps-in-macos-afd21b4a59e3#.avdge04d6
希望,你也发现它也很有用。
- 包装电子后在错误的地方创build目录
- 电子:与window.prompt对话框
- 我怎样才能强制从浏览器窗口的外部链接打开在默认浏览器从电子?
- 在Electron应用程序中运行python脚本
- 为什么当我把我的HTML格式的电子邮件发送到我的快递服务器时,给我一个“你发送的名字未定义”的错误?
- 电子应用 多个html文件
- 在electronjs中,在Main Process中然后在Renderer Process中使用child_process.fork有什么好处
- MySQL捆绑在一个NPM应用程序中
- Electron与Cordova有什么不同? 如何实现/包装Cordova API以在电子中使用NodeJS API?