如何在主机上使用docker构建的库和bin

时间:2019-05-18 15:41:05

标签: java docker openj9

我的问题是如何在主机中使用docker容器构建的软件和库。码头工人提供的库可能是其他工具/库编译的依赖项。当我尝试一些开源项目(例如openj9)时,这个问题就伴随着我。

例如,我在(building instruction)之后在docker容器中构建了一个openJ9 VM,这是一个类似于HotSpot JVM的Java VM。 该过程还可以,但是下一个问题是如何在位于主机的Eclipse中配置位于容器内部~/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/的容器构建的jvm?

我在使用docker时可能使用了错误的方式,感觉到存在潜在的冲突,因为用于容器构建的jvm的容器环境可能与主机环境不同。

因此,谁能解释在主机中为我的日食使用容器构建jvm的正确方法?谢谢

1 个答案:

答案 0 :(得分:0)

这里有两种不同的使用模式。我不确定您要问的是哪一个。也许您都在问这两个问题。

如果要在构建它的容器内运行JVM,则情况与在远程服务器上运行JVM并希望将其本地Eclipse连接到它的情况相同。我使用IntelliJ,它有多种方法可以让您部署和调试远程Java程序或库。不管哪种正确的方法是在Eclipse中,对于在本地Docker容器中运行的Java程序也是如此。

如果您要谈论的是将已在容器中构建的JVM软件包取出,从容器中拉出并在本地工作站上运行,则此方法将与在其他情况下构建可执行文件或一台机器上要使用的库。如果您在两种环境中都运行相同的基本操作系统,那么您将有最大的机会做到这一点,而无需复杂,例如,容器内外都使用类似版本的Ubuntu。您将无法在Docker容器中运行的Ubuntu内部构建JVM二进制文件,然后将其拉出并在托管Docker的Windows工作站上运行。

实际上...我意识到还有第三种选择。如果您想在Docker容器中运行Java程序,则可能是Eclipse具有特定的支持来实现此目的...在与Eclipse相同的工作站上运行的Docker主机中部署并运行Java程序。它将基本上与远程服务器执行相同的操作,但是如果知道您将本地Docker容器作为目标,则可以很好地简化此用例。