Не удалось найти или загрузить платформу основного класса во время работы док-контейнера - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь запустить jar из докера с помощью bash-скрипта, внутри него есть параметр -Djava.specification.name=Java Platform API Specification, после запуска я получаю сообщение об ошибке: «Не удалось найти или загрузить платформу основного класса».После добавления двойных кавычек я получаю еще одну ошибку: «Не удалось найти или загрузить секунды основного класса».В скрипте у меня есть только 2 параметра с «секундами»

  1. -Dakka.actor.deployment.default.within = 5 секунд
  2. -Dakka.stream.materializer.stream-ref.subscription-timeout = 30 секунд

После добавления к ним двойных кавычек я получаю сообщение об ошибке «Не удалось найти или загрузить секунды основного класса» ». Как это исправить?

Dokckerfile:

FROM anapsix/alpine-java:8_server-jre
RUN mkdir -p /opt/encry
ADD 0/EncryCore.jar /opt/encry/EncryCore.jar
ADD 1/template.conf 2/startNode.sh /opt/encry/
RUN chmod +x /opt/encry/startNode.sh
ENTRYPOINT ["\/opt\/encry\/startNode.sh"]
EXPOSE 10001

startNode.sh:

#!/bin/bash
echo Options: $OPTS
echo 123
echo "java $OPTS -jar /opt/app/EncryCore.jar      /opt/encry/template.conf"
java $OPTS -jar /opt/app/EncryCore.jar /opt/encry/template.conf

1 Ответ

0 голосов
/ 18 декабря 2018

Вы должны заключать любое значение, которое содержит или может содержать пробел.

Итак:

  • -Djava.specification.name="Java Platform API Specification"
  • -Dakka.actor.deployment.default.within="5 seconds"
  • -Dakka.stream.materializer.stream-ref.subscription-timeout="30 seconds"

Если он передан из скрипта, экранируйте кавычки, добавив перед ними \ или оберните всю строку в одинарные кавычки.

...