如何在码头上运行电子应用程序

时间:2016-10-08 08:14:22

标签: javascript node.js docker electron dockerfile

我创建了一个托管电子应用程序的存储库的分支,这是一个聊天客户端:https://github.com/Serkan-devel/BetterDiscordApp-docker

我要做的是创建一个docker容器,其GUI连接到自己的屏幕,如https://blog.jessfraz.com/post/docker-containers-on-the-desktop/

我创建的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

构建docker镜像并使用

执行它
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"

虽然我使文件可执行并使用了正确的amd64架构。

有没有人想过如何使电子GUI在码头工作方面做得很好?

2 个答案:

答案 0 :(得分:4)

我会在这个答案中帮助你 - 太长时间无法发表评论。

我在Win10上尝试了你的Docker文件并遇到了同样的问题。 但我通过添加所需的包并成功创建了docker镜像来解决这个问题。 这是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能够毫无问题地创建docker镜像。我也进入了docker容器并检查是否可以运行电子 - 工作

如果你想进入容器,你只需要构建docker镜像。我通过(最简单的方式)按照打开控制台,其中Dockerfile位于并运行)完成了:

   docker build -t test-image .

成功构建图像后,您可以运行容器。如果有任何问题,我建议您使用bash入口点运行容器并调试失败的内容 - bash将在您键入以下脚本的同一个控制台中打开)

   docker run -it test-image bash

答案 1 :(得分:0)

我发现这个问题很有用,最后我想出了这篇文章,让它更容易:

https://medium.com/@calbertts/developing-electron-apps-in-macos-afd21b4a59e3#.avdge04d6

希望你发现它也很有用。