0

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

例如,我在 docker 容器中构建了一个 openJ9 VM,一个类似于 HotSpot JVM 的 Java VM,遵循(构建指令)。这个过程没问题,但下一个问题是我如何配置容器构建的 jvm,驻留在~/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/容器内部,驻留在主机的 eclipse 中?

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

那么任何人都可以解释在主机中为我的 Eclipse 使用容器构建 jvm 的正确方法吗?谢谢

4

1 回答 1

1

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

如果您想在构建它的容器内运行 JVM,那么您遇到的情况就像您在远程服务器上运行 JVM 并希望将本地 Eclipse 连接到它一样。我使用 IntelliJ,它有多种方法可以让您部署和调试远程 Java 程序或库。无论在 Eclipse 中执行此操作的正确方法是什么,这同样适用于在本地 Docker 容器中运行的 Java 程序。

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

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

于 2019-05-19T01:55:44.933 回答