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