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

Вот приложение, которое я хочу поместить в контейнер Docker: https://github.com/Dabomstew / универсальный-покемон-рандомизатор

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

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

Вот несколько примеров приложений java gui, работающих в контейнере докеров:

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

2
calgara12 11 Мар 2019 в 22:57

1 ответ

Лучший ответ

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

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

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

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

1
David Maze 12 Мар 2019 в 10:39