Запустите приложение Java Gui в Docker-контейнере - PullRequest
2 голосов
/ 11 марта 2019

Я хочу запустить приложение с графическим интерфейсом Java в контейнере Docker, который затем будет размещен на моем сервере Ubuntu.Я хочу получить доступ к приложению через веб-браузер.

Вот приложение, которое я хочу поместить в Docker Container: https://github.com/Dabomstew/universal-pokemon-randomizer

Должен ли я добавить пользовательский интерфейс для приложенияв браузере, или можно использовать Java-интерфейс внутри браузера?

Я видел, как это было сделано с несколькими другими проектами, поэтому я думаю, что это должно быть возможно.Я не уверен, как именно это было сделано и сколько работы это потребует, хотя ...

Вот несколько примеров приложений Java GUI, работающих в контейнере Docker:

Я новичок в докере, надеюсь, кто-нибудь может мне помочь :) Спасибо!

1 Ответ

1 голос
/ 12 марта 2019

Браузеры могут запускать очень ограниченный набор языков исполнения; по сути только Javascript и вещи, которые можно перекомпилировать в Javascript. Не существует универсального способа взять запущенное настольное приложение и опубликовать его в браузере.

Докер здесь просто промежуточный слой. Это очень хорошо для таких вещей, как HTTP-серверы, которые являются автономными, за исключением сетевого порта; хорошо для приложений командной строки (если вы не против запустить его как root с командной строкой в ​​три раза дольше, он работает нормально); и плохо для приложений с графическим интерфейсом (работает только в Linux, командные строки длинные и непонятные, и все еще с большой вероятностью будут выглядеть иначе). Это не дает никакой магии, чтобы пересечь эти слои.

Возможно, вам удастся найти какое-то существующее программное обеспечение, которое может заполнить некоторые из этих пробелов; возможно, X-сервер на основе браузера или одна из полнофункциональных систем виртуальных машин может отображать рабочий стол виртуальной машины в браузере, или, возможно, вы сможете использовать полностью апробированную систему Java-апплетов, или, может быть, есть Java слой, который предоставляет клиент на основе веб-сокета и позволяет запускать собственное приложение с графическим интерфейсом Java с небольшими изменениями.

Я бы посоветовал вам сначала заставить ваше приложение работать и решить проблему «как мне на самом деле заставить его выглядеть так, как я хочу», и только потом вводить Docker, если это уместно. Слой разделения, который он обеспечивает, может сделать многие вещи более сложными, особенно когда вы активно разрабатываете или исследуете неизвестное пространство.

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