Как запустить электронное приложение внутри docker изображения? - PullRequest
0 голосов
/ 11 февраля 2020

каждый!

Я бы хотел запустить приложение «Реакт-электрон» (автономное приложение) внутри docker образа на Win10. Я использовал для запуска приложения на windows, запустив npm start-win, а затем npm start-electron-win.

Это часть моего пакета. json file.

"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 .",
  },

И это is 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

Сборка прошла успешно без каких-либо ошибок, и я могу просмотреть приложение на localhost:3005 , но я ожидаю увидеть работающее электронное настольное приложение.

Кто-нибудь может мне помочь с запуском приложения на docker?

Спасибо!

1 Ответ

1 голос
/ 11 февраля 2020

То, что вы ищете, называется x11 forwarding .

К сожалению, будет немного сложнее отобразить базовый интерфейс пользователя с работающим контейнером docker, чем если бы вы использовали дистрибутив linux - контейнеры docker все в значительной степени linux на основании. Вы не можете реально смонтировать соответствующий unix сокет

Обычно вы просто добавляете следующие строки к своему изображению

RUN xhost local:root

и работает с установленной розеткой

docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY

На яркой стороне,

Существует решение, которое легко установить

  • VcXsrv
  • Добавление переменной $DISPLAY env с сервером ip

Следуйте инструкциям здесь

https://dev.to/darksmile92/run-gui-app-in-linux-docker-container-on-windows-host-4kde

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...