【发布时间】:2019-08-03 14:22:55
【问题描述】:
我有一个简单的服务器-客户端 Java 应用程序,其中客户端可以连接到服务器并发送/接收消息。该应用程序是一个使用 IntelliJ 构建的项目,其中包含多个存储库和 Java 文件。我需要在 Docker 上运行应用程序,但不知道如何构建映像。
目前,我可以在我的机器上本地运行应用程序,只需使用 IntelliJ IDEA 上的“编译”和“构建”选项,但不知道如何将其打包到 Docker 映像中。
我最近才开始使用 IntelliJ 和 Docker,所以我对这两者都没有太多经验。到目前为止,我只设法 Dockerize 一个简单的 HelloWorld 应用程序。不确定这是否重要,但我在 Java 方面的经验也可以忽略不计。这个任务的目的是学习 Docker,而不是 Java。
我为我的 HelloWorld 应用程序使用了以下 Dockerfile,它非常简单,因为它在一个文件夹中只有一个文件。
FROM java:8
COPY . /var/www/java
WORKDIR /var/www/java
RUN javac HelloWorld.java
CMD ["java", "HelloWorld"]
我想知道如何为我的整个项目做同样的事情。对于上下文,我的服务器应用程序的 src 文件夹中有 3 个文件:“Main.java”、“Server.java”和“ServerThread”。我需要在一个容器中运行服务器应用程序,而在单独的容器中运行客户端应用程序。 Dockerfile 应该构建在 src 文件夹中还是根文件夹中。对于一个简单的 HelloWorld 应用程序,它应该与 Dockerfile 有多大不同?我应该将run 命令与哪些文件一起使用?
我对此感到不知所措,因为这是我第一次使用 Docker 和需要存储库的大型应用程序。
【问题讨论】:
-
感谢您的回复!不,我的客户端和服务器将内置到单独的图像/容器中。
-
听起来是一个很好的机会,可以拆分为 2 个 intellij 项目,每个项目都有自己的 dockerfile。一个 intellij 项目的多个存储库对我来说听起来过于复杂。
-
@halfer 我将在同一台机器上运行客户端和服务器容器,但最终想让它们联机。
-
@vikingsteve 服务器和客户端项目已经是 2 个独立的 IntelliJ 项目。我的意思是它们进一步包含更多文件夹。我的描述在这里可能有点误导。如上所述,有一个包含 3 个文件的 src 文件夹。除此之外,还有名为 .idea 和 out 的文件夹,其中包含类文件。
标签: java docker intellij-idea dockerfile