簡體   English   中英

如何使vert.x項目在Docker容器中工作?

[英]How to make vert.x project work in a Docker container?

我從http://start.vertx.io/下載了一個vert.x入門項目,並希望在Docker容器中使用java -jar ..運行編譯后的二進制文件。

當前調用命令:

mvn package exec:java -DskipTests

當前的Dockerfile

FROM java:10
COPY target/project-1.0-SNAPSHOT.jar project.jar
ENTRYPOINT java -jar project.jar

運行時給出以下錯誤信息

/project/target/vertx-start-project-1.0-SNAPSHOT.jar中沒有主清單屬性

有沒有像通常使用Maven那樣構建完整的部署程序集更簡單的方法?

當您運行這樣的命令時:

mvn package exec:java

vert.x特定配置將使Maven創建:

SNAPSHOT.jar
SNAPSHOT-fat.jar

像這樣:

在此處輸入圖片說明

fat.jar中包含所有文件,因此您只需要將該jar文件復制到Docker映像即可。

FROM openjdk:10-jre-slim
COPY target/SNAPSHOT-fat.jar fat.jar
ENTRYPOINT java -jar fat.jar

您使用以下命令構建docker映像:

docker build -t foo .

然后使用以下命令將Docker映像作為容器運行:

docker run -it foo

一個可運行的jar需要MANIFEST.MF中的Main-Class條目以及要啟動的類的名稱。

您很可能還需要復制依賴項。

考慮這是您的應用程序的完整部署。

就像Thorbjørn所說的那樣,此命令執行一個“可運行”的jar,這意味着它應該已經裝有MANIFEST.MF,它指向項目中的某些certian主方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM