Как использовать встроенную в Docker библиотеку и bin на хост-машине - PullRequest
0 голосов
/ 18 мая 2019

Мой вопрос заключается в том, как использовать программное обеспечение и библиотеку, встроенную в Docker-контейнер, на хост-компьютере.Библиотека, поставляемая докером, может зависеть от компиляции другого инструмента / библиотеки.этот вопрос возникает у меня, когда я пробовал некоторые проекты с открытым исходным кодом, например, openj9.

Например, я собрал одну виртуальную машину openJ9, виртуальную машину Java, аналогичную виртуальной машине HotSpot, в контейнере Docker, следуя ( инструкция по сборке ).Процесс в порядке, но следующая проблема заключается в том, как я могу настроить встроенный в контейнер jvm, находящийся в ~/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/ внутри контейнера, в затмении, которое находится на главном компьютере?

Я могу ошибаться при использовании docker, чувствуя, что возможен конфликт, так как среда контейнера для jvm, построенной из контейнера, может отличаться от среды хост-машины.

Так может ли кто-нибудь объяснить, как правильно использовать контейнерную сборку jvm для моего затмения на хост-машине?Спасибо

1 Ответ

0 голосов
/ 19 мая 2019

Здесь есть два разных режима использования.Я не уверен, о каком из них ты спрашиваешь.Может быть, вы спрашиваете об обоих.

Если вы хотите запустить JVM внутри контейнера, в котором вы его построили, то у вас тот же случай, что и при запуске JVM на удаленном сервере.и желая подключить ваш локальный Eclipse к нему.Я использую IntelliJ, у которого есть несколько способов позволить вам развертывать и отлаживать удаленные Java-программы или библиотеки.Какой бы правильный способ сделать это в Eclipse, то же самое применимо к Java-программе, работающей в локальном контейнере Docker.

Если вы говорите о том, чтобы взять пакет JVM, который вы встроили в контейнер,вытащив его из контейнера и запустив на локальной рабочей станции, это будет работать так же, как и в любом другом случае, когда вы создаете исполняемый файл или библиотеку на одном компьютере для использования на другом.У вас будет больше шансов сделать это без осложнений, если вы будете использовать одну и ту же базовую ОС в обеих средах, как, например, Ubuntu похожих версий как внутри, так и снаружи контейнера.Вы не сможете создать двоичный файл JVM внутри Ubuntu, работающий в контейнере Docker, а затем извлечь его и запустить на своей рабочей станции Windows, на которой размещен Docker.

На самом деле ... Я понимаю, что есть третийвариант.Если вы хотите запустить вашу Java-программу в контейнере Docker, возможно, Eclipse имеет специальную поддержку для этого ... развертывания и запуска Java-программы на хосте Docker, работающем на той же рабочей станции, что и Eclipse.Он будет делать в основном то же самое, что и для удаленного сервера, но он вполне может упростить этот вариант использования, зная, что вы нацелены на локальный контейнер Docker.

...