我有一个正在运行的java ee应用程序,它使用wildfly和mysql。现在我听说Docker正在使用每个人,而且效率很高,所以我决定对我的开发环境进行dockerize。听起来比它更容易。Maven运行docker图像与java ee应用程序
是我到目前为止有:
- Maven的包装我的应用程序到一个.war文件
- 其运行测试在我的本地安装wildfly实例的Arquillian单元测试
我想要:
- 使用预定义的泊坞窗图像(jboss/wildfly,...)来运行我的应用程序。
- 也在码头集装箱中运行我的测试。
我开始通过与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命令:
- 构建应用程序
- 构建泊坞窗图像(wildfly,MySQL的...)
- 运行的Arquillian JUnit测试
- 部署应用程序并通过本地主机将其暴露:8080
- 停止容器是否有新的部署是由
我真的很挣扎克与此。谁知道如何做到这一点?
我一定会看看!看起来很有希望。让我们看看它将如何与独立的数据库容器一起玩。 – perotom