通过fabric8io docker-maven-plugin将一个.war部署到一个Docker镜像中

我对Docker和fabric8io docker docker-maven-plugin很新。 我有一些困难的时候将一个.war插入到我的jboss/wildfly派生的图像中。 我可以通过命令行成功构build与.war一起提供的映像,但是我不能通过已经提到的插件来完成。 据我所知,一旦你给正确的上下文和Dockerfile它应该只是一个问题:

 <build> <finalName>${project.build.finalName}.${project.packaging}</finalName> ... <assembly> <descriptorRef>artifact</descriptorRef> </assembly> </build> 

但我得到这个错误:

 [INFO] <<< docker-maven-plugin:0.19.0:build (default-cli) < package @ YoOffer <<< [INFO] [INFO] --- docker-maven-plugin:0.19.0:build (default-cli) @ YoOffer --- [WARNING] Cannot include project artifact: edu.pezzati.yo:YoOffer:war:0.0.1-SNAPSHOT; it doesn't have an associated file or directory. [WARNING] The following patterns were never triggered in this artifact inclusion filter: o 'edu.pezzati.yo:YoOffer' [ERROR] DOCKER> Failed to create assembly for docker image (with mode 'dir'): Error creating assembly archive docker: You must set at least one file. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ 

这是我的沙箱。

更新:我清理了一些在我的朋友混乱。 现在看起来像这样:

 <images> <image> <alias>yowildfly</alias> <name>jboss/wildfly</name> <build> <!-- <assembly> <descriptorRef>${project.basedir}/src/test/resources/DOCKER/assembly.xml</descriptorRef> </assembly> --> <args> <webapp>target/${project.build.finalName}.${project.packaging}</webapp> </args> <dockerFileDir>${project.basedir}</dockerFileDir> <dockerFile>src/test/resources/DOCKER/wildfly/Dockerfile</dockerFile> </build> <run> <ports> <port>8080:8080</port> </ports> </run> </image> ... </images> 

现在我得到这个错误:

 ... [ERROR] DOCKER> Unable to build image [jboss/wildfly] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.769 s [INFO] Finished at: 2017-02-12T01:19:57+01:00 [INFO] Final Memory: 36M/271M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.19.0:build (default-cli) on project YoOffer: Unable to build image [jboss/wildfly]: lstat target/YoOffer.war: no such file or directory -> [Help 1] [ERROR] ... 

根据文档,与dockerFile一起使用的dockerFile应该标记图像构build上下文。

我误解了fabric8io docker插件文档。 您可以一起使用dockerFileDirdockerFile但是不会将构build上下文设置为dockerFileDir值。 要从target部署我的工件,我必须将我的Dockerfile放到我的项目的根目录中,使用项目根path设置dockerFileDir值,从我的pom移除dockerFile条目。 我的沙箱是这样更新的。 下一步是通过在build conf中使用assembly以更清晰的方式实现相同。