我有一個正在運行的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