У меня есть работающее приложение java ee, использующее wildfly и mysql. Теперь я слышал, что докер использует всех, и он очень продуктивен, поэтому я решил закрепить мою среду разработки. Звучит легче, чем есть.Maven run docker image with java ee application
Что я до сих пор:
- Maven для упаковки моего приложения в .war файл
- Arquillian модульных тестов, которая проходит испытание на моем локально установленного wildfly экземпляра
Что я хочу:
- Использование предопределенных изображений докеров (jboss/wildfly, ...) для запуска моего приложения.
- Также выполняются мои тесты в контейнере докера.
Я начал строить Docker изображение с Maven-докер-плагин:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>netbeans/sampleapplication</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.war</include>
</resource>
</resources>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</configuration>
</plugin>
Dockerfile:
FROM jboss/wildfly
COPY *.war /opt/jboss/wildfly/standalone/deployments/app.war
EXPOSE 8080 9990
Maven команду: clean package docker:build
. Я могу добраться до сервера приложений только с помощью моего docker-maschine url и не как раньше с localhost. В конце концов, я просто хочу, чтобы использовать одну команду Maven для:
- Создание приложения
- Построение Docker изображений (wildfly, MySQL ...)
- Run arquillian тесты JUnit
- Deploy приложение и выставить его с помощью локального хоста: 8080
- Стоп контейнер, если новый Deploy сделан
Я действительно боролся за g с этим. Кто-нибудь подумает, как это сделать?
Я обязательно посмотрю на это! выглядит очень многообещающим. Давайте посмотрим, как он будет играть вместе с отдельным контейнером базы данных. – perotom