【发布时间】:2017-01-29 09:36:39
【问题描述】:
我有一个正在运行的 java ee 应用程序,它使用 wildfly 和 mysql。现在我听说 docker 正在使用每个人,而且效率很高,所以我决定对我的开发环境进行 docker 化。听起来比实际简单。
到目前为止我有什么:
- 用于将我的应用打包成 .war 文件的 Maven
- Arquillian 单元测试在我本地安装的 Wildfly 实例上运行测试
我想要什么:
- 使用预定义的 docker 映像(jboss/wildfly,...)来运行我的应用程序。
- 还在 docker 容器中运行我的测试。
我开始使用 maven-docker-plugin 构建一个 docker 映像:
<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...)
- 运行 arquillian junit 测试
- 部署应用程序并通过 localhost:8080 公开它
- 进行新部署时停止容器
我真的很挣扎。有人知道如何做到这一点吗?
【问题讨论】:
标签: mysql maven docker wildfly