Docker和Java IDE集成

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

为了最大限度地减less前端和后端(在这个具体的情况下,Java)开发人员之间的差距,我开始把一些docker图像与Java和Maven的地方,构build后,我开始一个docker容器与指向Java项目的卷前端开发人员不必担心依赖关系或如何运行后端服务)。

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

为了启动/停止/重新启动Docker容器,我创build了一个脚本来完成所有这些工作,所以我可以对代码进行一些更改,使其重新启动。

它有点作品,我的意思是,我很清楚这不是一个Java开发人员从控制台做这种东西的正常工作stream程。 所以,现在,最重要的问题是,如何将docker与Java IDE集成? 我知道你可以创build自定义的构build/运行命令,但是我也看到,像日志这样的东西不会显示在IDE上。

有人能解释我如何使用Docker + Java IDE?

注意:Maven也用于编译java代码,比如mvn clean install (如果有帮助的话)

我不使用Docker与Java IDE。 我使用IDE(Eclipse)编写和testing代码,使用Maven来pipe理构build。 然后我有一个像这样的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 

如果你在一台机器上构build所有的图像,那么Doc​​ker将会智能地caching,你不需要再做任何事情。 如果你想运行更多的机器,或者你只是想明确说明,你可以这样做:

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 with Java那里得到很大的影响,因为JAR已经非常便于携带和包容了。 我想这可以很容易地并行运行不同的Java版本。 我使用它,因为它允许我运行不同语言的应用程序,而不需要知道容器内部是什么。 我有一些在Java中,一些在Python中,一些在JavaScript中,一些在Erlang中,但他们都开始作为docker run -d <flags> myorg/myimage:someversion