Docker和Java IDE集成

里卡多·费雷拉

首先,我不是Java开发人员,也不是Docker专家。

为了最小化前端和后端(在此特定情况下为Java)开发人员之间的差距,我开始使用Java和Maven将一些Docker映像放置在适当的位置,在构建之后,我启动了一个Docker容器,该容器的体积指向Java项目(并且前端开发人员不必担心依赖关系或如何运行后端服务。

我已经在这里有一个问题。我见过其他人在内部使用实际代码构建映像,而不是以后附加它,那么最好的情况是什么(如果有的话)?我之所以这样做,是因为我可以将该图像重用于“每个”项目,并避免构建不同的图像。

为了启动/停止/重新启动Docker容器,我创建了一个脚本来完成所有这些工作,因此我可以对代码进行一些更改,然后再上下调整。

它有点用,我的意思是,我很清楚这不是Java开发人员从控制台执行此类工作的正常工作流程。所以现在,最重要的问题是,如何将Docker与Java IDE集成在一起?我知道您可以创建自定义的构建/运行命令,但我也了解到日志之类的内容未显示在IDE上。

有人可以解释一下您如何使用Docker + Java IDE吗?

注意:Maven还用于编译Java代码,例如mvn clean install(如果有帮助的话)

纳撒尼尔(Nathaniel Waisbrot)

我不将Docker与Java IDE配合使用。我使用IDE(Eclipse)编写和测试代码,并使用Maven来管理构建。然后我有一个Dockerfile这样的:

FROM java:8

RUN apt-get update || apt-get update
RUN apt-get install -y maven

# Maven installs Java 7, which set itself as the default...
RUN update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

CMD java -jar target/main.jar

# Pull down dependencies here to allow Docker to cache more
ADD pom.xml /opt/app/pom.xml
WORKDIR /opt/app
RUN mvn dependency:go-offline -X

# I use the maven-shade-plugin to build a single jar
ADD src /opt/app/src
RUN mvn package

如果您在一台机器上构建所有映像,那么Doc​​ker将智能地进行缓存,而您无需执行任何其他操作。如果要在更多计算机上运行,​​或者只想使其显式运行,可以执行以下操作:

base/Dockerfile

FROM java:8

RUN apt-get update || apt-get update
RUN apt-get install -y maven
RUN update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

CMD java -jar target/main.jar

$ docker build -t yourorg / java-base:8 ./base/

myapp/Dockerfile

FROM yourorg/java-base:8

ADD pom.xml /opt/app/pom.xml
WORKDIR /opt/app
RUN mvn dependency:go-offline -X

ADD src /opt/app/src
RUN mvn package

Docker与Java相比,您获得的影响不大,因为JAR已经非常可移植且功能齐全。我想这使得并行运行不同的Java版本变得容易。我之所以使用它,是因为它允许我以不同的语言运行应用程序,而无需了解容器内部的内容。我有一些Java语言,一些Python语言,一些JavaScript语言,一些Erlang语言,但是它们都以开头docker run -d <flags> myorg/myimage:someversion

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章