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

2023-12-31

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

我想做的是创建一个 docker 容器,其 GUI 连接到自己的屏幕,如下所示https://blog.jessfraz.com/post/docker-containers-on-the-desktop/ 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 架构。

有谁知道如何让 Electron GUI 在 docker 上自然地工作吗?


我会尽力在这个答案中帮助你——太长了,无法发表评论。

我在我的 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 容器并检查是否可以运行电子 -worked.

如果你想进入容器,你只需要构建docker镜像。我已经通过(最简单的方法)以下命令完成了(open安慰Dockerfile 所在位置并运行):

docker build -t test-image .

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

docker run -it test-image bash
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 docker 上运行电子应用程序 的相关文章

  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 在 GitLab CI 上测试脚本之前执行 mysql 命令

    我想在执行测试脚本之前创建测试数据库 我已经包含了 mysql 服务 但我找不到运行 mysql 命令的方法 I run mysql in before script 但它一直抱怨 bin bash line 57 mysql comman
  • .Net 添加索引到数据表(数据集)

    有没有办法在 Net 中向数据表添加索引 我有一个包含大约 1 100 行的数据表 并且 datatable select 语句对于内存中操作来说似乎有点慢 table PrimaryKey new DataColumn table Col
  • 运行 spork 时出现错误:地址已在使用中

    我假设这是因为进程没有正确关闭 所以仍在运行 但使用top或ps我找不到它 有没有办法找到它的运行位置 或者让它强制重新打开端口 try sudo netstat lpn查看正在侦听哪些端口以及正在侦听哪些进程
  • 查找 LineString 与 turfjs 中的多边形边框相交的坐标

    Turfjs 有没有办法确定 LineString 与多边形边界相交的坐标 有多种方法可以确定一个点是否在多边形内 也有多种方法可以确定一个点是否在一条直线上等等 但我似乎无法找到一种方法来询问 这条线在什么点与这个多边形的边界相交 我可以
  • 如何访问字典中的第一个和最后一个元素?

    在发帖之前 我已经经历过在Python中访问字典中的任意元素 https stackoverflow com questions 3097866 python access to first element in dictionary 但我
  • 为什么我不能使用 Set:union() 而不是 Set.union?

    我正在学习 Lua 我宁愿使用冒号 的方法 不幸的是 它并不是在所有地方都有效 看我的代码 Set local mt function Set new m local set setmetatable set mt for a b in p
  • 如何使用 RabbitMQ-JMS 恢复消费者,或指定自定义异常处理程序?

    我正在尝试使用 RabbitMQ JMS 客户端 并有意创建了一个长 onMessage 侦听器来查看客户端将如何恢复 Context context new InitialContext rabbitMQ RMQConnectionFac
  • 如果构造函数中引发异常会发生什么[重复]

    这个问题在这里已经有答案了 可能的重复 如果派生类析构函数抛出异常 基类析构函数会发生什么情况 https stackoverflow com questions 4508533 what happens to base class des
  • 创建注册表项(和子项)?

    我正在尝试创建一个注册表项和子项 以便为计算机上的所有用户启用 IE 11 企业模式 这就是我当前用于 VBScript 的内容 但它失败得很厉害 不添加密钥 我需要一些帮助来纠正这个问题 Const HKEY LOCAL MACHINE
  • 如何删除 Eclipse 项目相关文件而不从 Eclipse 中删除源

    每当我们想要使用现有源位置创建 Eclipse 项目时 我们都会选择现有源位置 根 作为项目位置 Eclipse 将在该源的根目录中创建所有项目特定文件 现在 由于某种原因 如果我们想使用不同的设置重新创建项目 我们应该如何告诉 Eclip
  • 启用 Lambda@Edge 后调试 CloudFront 的问题

    下列的本文 https aws amazon com blogs apn using amazon cloudfront with multi region amazon s3 origins 我正在尝试从 AWS 内的多个区域 同一域下
  • JAVA 面向方面编程 - 运行时方面编织和类加载时方面编织

    我看到一篇关于 AOP 的文章 其中提到切面编织可以在编译时 类加载时和运行时发生 在java中 我可以想象 甚至可以理解 方面编织在编译时实际上是如何发生的 代理类是在类编译期间生成的 在项目上启用了方面 生成的字节码将具有代理代码 但我
  • .Net Twitter OAuth 如何执行成功的 GET 请求

    按照本教程 我能够成功向 Twitter API 发布帖子并更新我的状态 但是我在处理成功的 GET 请求时遇到问题 我正在尝试修改 Post 请求来完成此操作 但在我的网络异常上不断收到 无效协议 错误 以下是将发布状态更新的工作代码 h
  • 原则 2. orm:schema-tool:update 。设置开始ID

    当我使用 bin doctrine orm fixtures load使用示例数据填充表首先迁移设置自动增量表 ID 如 1 2 3 4 5 等 第二次之后orm fixtures load迁移命令它会清除所有数据并设置 id 如 5 6
  • 如何在 Vim 中设置工作/当前目录?

    因此 当我想使用 e 命令创建新文件时 我不想指定整个路径 而只想指定新文件名 能做到吗 正如已经建议的 您可以使用 autochdir 它将更改为您打开的文件的目录 另一个选项是 cd mydirectory 这将更改目录 这可以是绝对路
  • ruby - 覆盖方法然后恢复

    我正在尝试找到一种方法 可以覆盖方法 执行某些操作 然后在不留下任何工件的情况下进行恢复 我已经使用 mocha 实现了这个 但显然这不会在生产应用程序中运行 请注意 新方法有参数 而旧方法没有 示例如下 require rubygems
  • CSS 宽度和高度属性的最大像素值是多少?

    最大有效值是多少pxCSS 的值width and height属性接受吗 我目前正在构建一个网络应用程序 它创建一个非常大的可缩放容器元素 我想知道实际的限制是什么 在元素上使用某些浏览器附带的 CSS 检查器10000000000px
  • 从 javascript 运行 bat 文件

    我正在尝试使用 javascript 运行 bat 文件 我尝试过使用 powershell 但它似乎无法正常工作 这是我尝试过的代码 var oShell WScript CreateObject WScript Shell oShell
  • 将浮动栏添加到滚动视图,就像 Facebook iOS 应用程序的时间线中一样

    我一直在尝试向我的测试项目添加不同的交互 但在添加 Facebook 的帖子状态栏之类的东西时遇到了麻烦 该状态栏位于时间线滚动视图上 并在向下滚动时随滚动视图一起滚动视图 但当您向上滚动时仍停留在导航栏下方 我一直在创建一个单独的 UIV
  • 如何在 docker 上运行电子应用程序

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