2017-02-07 9 views
8

Jestem bardzo nowy dla Docker i fabric8io docker-maven-plugin. Mam ciężkie czasy, aby wdrożyć plik .war w moim obrazie, uzyskany z wersji jboss/wildfly. Mogę pomyślnie skompilować mój obraz dostarczony z .war przez linię poleceń, ale nie mogę zrobić tego samego przez wspomnianą już wtyczkę. O ile mi czytać, gdy dajesz prawy kontekst i Dockerfile powinno być tylko kwestią:Wdrażaj plik .war w obrazie Docker przez fabric8io docker-maven-plugin.

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

ale jestem gettin ten błąd:

[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 jest moja piaskownica.

AKTUALIZACJA: Sprzątam trochę bałaganu w mojej pom. Teraz wygląda to tak:

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

teraz otrzymuję ten błąd:

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

się odpowiednio do Dokumentów dockerFileDir używany razem z dockerFile należy oznaczyć zdjęcie kontekst kompilacji.

Odpowiedz

1

Źle zrozumiałem dokumenty wtyczki docker fabric8io. Można używać razem: dockerFileDir i dockerFile, ale kontekst budowania nie zostanie ustawiony na wartość dockerFileDir. Aby wdrożyć mój artefakt z target, muszę umieścić mój Dockerfile w katalogu głównym mojego projektu, ustawić wartość dockerFileDir z ścieżką katalogu głównego projektu, usunąć wpis dockerFile z mojego . Mój sandbox jest aktualizowany w ten sposób. Następnym krokiem jest osiągnięcie tego samego w czystszy sposób przy użyciu assembly w build konf.

Powiązane problemy