Как заставить проект vert.x работать в контейнере Docker? - PullRequest
0 голосов
/ 27 января 2019

Я скачал стартовый проект vert.x из http://start.vertx.io/ и хотел бы запустить скомпилированный двоичный файл с java -jar .. внутри контейнера Docker.

Текущая команда вызова:

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?

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Как и то, что сказал Турбьёрн, эта команда выполняет «выполнимый» jar, что означает, что он должен быть упакован с MANIFEST.MF, который указывает на какой-то главный метод certian в вашем проекте

0 голосов
/ 27 января 2019

Когда вы запускаете такую ​​команду:

mvn package exec:java

Конфигурация vert.x заставит Maven создать:

SNAPSHOT.jar
SNAPSHOT-fat.jar

вроде так:

enter image description here

В файле fat.jar есть все файлы, поэтому вам нужно только скопировать этот файл JAR в образ Docker.

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

вы создаете образ докера с помощью:

docker build -t foo .

затем запустите образ докера как контейнер с:

docker run -it foo
0 голосов
/ 27 января 2019

Для запускаемого фляги требуется Main-Class запись в MANIFEST.MF с именем класса для запуска.

Скорее всего, вам также потребуется скопировать ваши зависимости.

Считайте, что это полное развертывание вашего приложения.

...