2017-02-07 34 views
8

我对Docker和fabric8io docker-maven-plugin很新。我正在经历一些艰难的时期,将一个.war放入由jboss/wildfly衍生而来的映像中。我可以通过命令行成功地构建与.war一起提供的映像,但是我不能通过已经提到的插件来完成。 至于我读,一旦你给右边的语境和Dockerfile它应该是唯一的问题:通过fabric8io将一个.war插入到Docker镜像中docker-maven-plugin

<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] ------------------------------------------------------------------------ 

Here是我的沙盒。

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

<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] 
... 

因此到文档,dockerFileDirdockerFile一起使用,应当标注图像构建上下文。

回答

1

我误解了fabric8io docker插件文档。您可以一起使用dockerFileDirdockerFile,但建筑上下文将不会设置为dockerFileDir值。从target部署我的神器我必须把我的Dockerfile到我的项目的根,设置dockerFileDir值与项目根路径,从我的pom删除dockerFile条目。我的sandbox以这种方式更新。下一步是通过conf中的assembly以更简洁的方式实现。

相关问题