Reactjs 如何在docker映像内运行electron应用程序?

Reactjs 如何在docker映像内运行electron应用程序?,reactjs,docker,electron,Reactjs,Docker,Electron,各位! 我想在Win10上的docker映像中运行react electron应用程序(这是一个脱机应用程序)。 我曾经在windows上运行应用程序,运行npm start win,然后运行npm start electron win 这是my package.json文件的一部分 "scripts": { "start": "export BROWSER=none && export PORT=3005 && react-scripts start",

各位!

我想在Win10上的docker映像中运行react electron应用程序(这是一个脱机应用程序)。 我曾经在windows上运行应用程序,运行
npm start win
,然后运行
npm start electron win

这是my package.json文件的一部分

"scripts": {
    "start": "export BROWSER=none && export PORT=3005 && react-scripts start",
    "start-win": "set BROWSER=none && set PORT=3005 && react-scripts start",
    "start-electron": "export ELECTRON_START_URL=http://localhost:3005 && electron .",
    "start-electron-win": "set ELECTRON_START_URL=http://localhost:3005 && electron .",
  },
这是Dockerfile

# base image
FROM node:12.2.0-alpine

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install react-scripts@3.0.1 -g

# start app
CMD ["npm", "start"]
CMD ["npm", "start-electron"]
使用以下命令构建并启动docker之后

- docker build -t offline:dev .
- docker run -v ${PWD}:/app -v /app/node_modules -p 3005 --rm offline:dev
建筑成功,没有任何bug,我可以在
localhost:3005
上浏览应用程序, 但我希望看到的是运行的电子桌面应用程序

有没有人可以帮我在docker上启动应用程序


谢谢

您正在寻找的是所谓的x11转发

不幸的是,与使用linux发行版相比,使用运行的docker容器来显示底层UI会有点困难——docker容器几乎都是基于linux的。您不能真正挂载相关的unix套接字

通常,您只需在图像中添加以下行

并在安装插座的情况下运行

在光明面,

似乎有一种解决方案很容易安装

  • VcXsrv
  • 使用服务器ip添加
    $DISPLAY
    env变量
按照此处的说明操作


您在
本地主机:3005上实际看到了什么?您可以与我们共享任何错误吗?Docker最多只能用于交互式桌面应用程序,并且您正在构建的映像不包含您试图运行的应用程序。您希望在Docker中运行此功能能获得什么好处?(特别是因为电子已经有了。)
RUN xhost local:root
docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY