2017-02-07 24 views
8

Tôi rất mới với Docker và fabric8io docker-maven-plugin. Tôi đang gặp phải một số thời điểm khó khăn để triển khai một chiến dịch .war vào hình ảnh của tôi được bắt nguồn từ số jboss/wildfly. Tôi có thể xây dựng thành công hình ảnh của mình được chuyển bằng .war bằng dòng lệnh nhưng tôi không thể thực hiện tương tự bằng plugin đã đề cập. Theo như tôi đọc, một khi bạn bối cảnh phải cho đi và Dockerfile nó phải chỉ là vấn đề:Triển khai một .war vào hình ảnh Docker bởi fabric8io docker-maven-plugin

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

nhưng tôi gettin lỗi này:

[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 là sandbox của tôi.

CẬP NHẬT: Tôi làm sạch một số mớ hỗn độn trong pom của tôi. Bây giờ nó trông như thế này:

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

Bây giờ tôi nhận được lỗi này:

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

Theo đó để tài liệu, dockerFileDir sử dụng cùng với dockerFile nên đánh dấu hình ảnh xây dựng bối cảnh.

Trả lời

1

Tôi hiểu lầm tài liệu plugin plugin8. Bạn có thể sử dụng cùng nhau dockerFileDirdockerFile nhưng ngữ cảnh xây dựng sẽ không được đặt thành giá trị dockerFileDir. Để triển khai tạo tác của tôi từ target Tôi phải đặt số Dockerfile của mình vào thư mục gốc của dự án, đặt giá trị dockerFileDir với đường dẫn gốc của dự án, hãy xóa mục nhập dockerFile khỏi số pom của tôi. My sandbox được cập nhật theo cách này. Bước tiếp theo là để đạt được cùng một cách sạch hơn bằng cách sử dụng assembly trong build conf.

Các vấn đề liên quan