我的问题是如何在主机上使用docker容器构建的软件和库。docker附带的库可能依赖于其他工具/库编译。当我尝试一些开源项目时,这个问题随之而来,例如openj9。
例如,我在docker容器中构建了一个openJ9 VM,一个类似于HotSpot JVM的Java,如下所示(building instruction)。这个过程是可以的,但是下一个问题是我如何在驻留在主机上的eclipse中配置容器构建的jvm,驻留在容器内部的~/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/中?
我使用docker的方式可能是错误的,感觉可能会有潜在的冲突,因为容器构建的jvm的容器环境可能与主机环境不同。
那么,谁能解释一下在主机中使用容器构建jvm的正确方法吗?谢谢
发布于 2019-05-19 09:55:45
这里有两种截然不同的使用模式。我不确定你问的是哪一个。也许你是在问这两个问题。
如果您想要在构建JVM的容器中运行JVM,那么就会得到与在远程服务器上运行JVM并希望将本地Eclipse连接到它的情况相同的情况。我使用的是IntelliJ,它有许多方法可以让您部署和调试远程Java程序或库。无论在Eclipse中执行此操作的正确方式是什么,都同样适用于在本地Docker容器中运行的Java程序。
如果您正在讨论将在容器中构建的JVM包从容器中取出,并在本地工作站上运行它,那么这种方法的工作原理与在一台计算机上构建可执行文件或库以在另一台计算机上使用的任何其他情况相同。如果您在两个环境中运行相同的基本操作系统,例如容器内部和外部的类似版本的Ubuntu,那么您将有最好的机会做到这一点,而不会出现复杂的问题。您无法在运行于Docker容器中的Ubuntu中构建JVM二进制文件,然后将其拉出并在托管Docker的Windows工作站上运行。
实际上...我意识到还有第三种选择。如果您想在Docker容器中运行您的Java程序,那么Eclipse可能对在与Eclipse相同的工作站上运行的Docker主机执行this...deploying和运行Java程序提供了特定的支持。它基本上会做与远程服务器相同的事情,但它可以很好地简化这个用例,因为您知道您的目标是本地Docker容器。
https://stackoverflow.com/questions/56200478
复制相似问题