2017-02-07 16 views
8

tarafından bir Docker görüntüsüne .war. Docker ve fabric8io docker-maven-plugin için çok yeniyim. Bir .war'i jboss/wildfly one'dan türetilen görüntüye yerleştirmek için bazı zor zamanlar yaşıyorum. Başarılı bir şekilde .war ile komut satırına gönderilen resmimi yapılandırabilirim ancak daha önce bahsi geçen eklenti ile aynı şeyi yapamıyorum. Bildiğim kadarıyla okumak gibi, size bir kez doğru bağlam kazandırmak ve Dockerfile bu sadece bir meselesi olmalıdır:.8 Docker-maven-plugin

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

ama bu hata gettin am:

[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 benim kum olduğunu.

GÜNCELLEME: Pomamda biraz dağınıklığı temizliyorum. Şimdi şuna benzer:

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

Şimdi bu hatayı alıyorum: Görüntü oluşturma bağlamı işaretlemeniz gerekir dockerFile ile birlikte kullanılır dokümanlara Buna göre

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

, dockerFileDir.

cevap

1

Fabric8io docker eklentisi belgelerini yanlış anladım. Birlikte dockerFileDir ve dockerFile'u kullanabilirsiniz, ancak bina içeriği dockerFileDir değerine ayarlanmayacaktır. Eserinizi target'dan dağıtmak için, projemin kök dizinine(dockerFileDir) değerini proje kök yoluna yerleştirmek zorundayım, girişimi pom sayfamdan kaldırın. Bu şekilde sandbox güncellendi. Sonraki adım, build conf içinde assembly'u kullanarak daha temiz bir şekilde elde etmektir.