在Docker容器运行期间找不到或加载主类平台

时间:2018-12-18 18:31:05

标签: java scala docker sbt akka

我试图通过bash脚本从docker运行jar,在其中有param -Djava.specification.name=Java Platform API Specification,运行后出现错误:“找不到或加载主类平台”。添加双引号后,我得到另一个错误:“找不到或加载主类秒数”。在脚本中,我只有2个带有“ seconds”的参数

  1. -Dakka.actor.deployment.default.within = 5秒
  2. -Dakka.stream.materializer.stream-ref.subscription-timeout = 30秒

在其上加上双引号后,我得到err“找不到或加载主类秒数”“。如何解决?

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 :(得分:1)

您应该引用任何包含或可以包含空格的值。

所以:

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

如果它是从脚本传递过来的,请在引号前面加上\来对引号进行转义,或将整个字符串用单引号引起来。