2017-02-07 6 views
8

私はDockerとfabric8io docker-maven-pluginにはとても新しいです。 jboss/wildflyで取得した画像に.warを展開するのに苦労しています。私は、コマンドラインで.warを使って出荷されたイメージを作成することはできますが、すでに述べたプラグインでは同じことをすることはできません。 は、私の知る限り読んで、あなた一度右のコンテキストを与えるとDockerfileそれが唯一の問題である必要があります。fabricockio docker-maven-pluginによってDockerイメージに.warを展開する

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

が、私はこのエラーをのgettinています:

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

dockerFileと一緒に使用dockerFileDirは、画像のビルドコンテキストをマークする必要があります。

答えて

1

私はfabric8io docker plugin docsを誤解しました。 dockerFileDirdockerFileを一緒に使用できますが、建物のコンテキストはdockerFileDirの値に設定されません。 targetから私のアーチファクトを展開する私のプロジェクトのルートにDockerfileを置く必要があります。dockerFileDirの値をプロジェクトルートパスに設定してpomからdockerFileのエントリを削除してください。私のsandboxはこの方法で更新されます。次のステップは、をbuild confで使用して、よりクリーンな方法で同じ結果を達成することです。

関連する問題