无法在CMD行上使用变量:
#CMD ["/opt/jdk/bin/java", "-jar", "${ARTIFACTID}-${VERSION}.${PACKAGING}"]
CMD ["/opt/jdk/bin/java", "-jar", "ssltools-domain-LATEST.jar"]
Run Code Online (Sandbox Code Playgroud)
最新的线路工作,而不是第一个.
任何帮助或解决方法非常感谢
将参数写入CMD
(或ENTRYPOINT
)作为JSON字符串时,如...
CMD ["/opt/jdk/bin/java", "-jar", "ssltools-domain-LATEST.jar"]
Run Code Online (Sandbox Code Playgroud)
...该命令直接使用exec
系统调用执行,不由shell处理.这意味着没有i/o重定向,没有通配符处理......也没有变量扩展.您可以通过多种方式解决此问题:
你可以把它写成一个普通的字符串,如:
CMD /opt/jdk/bin/java -jar ${ARTIFACTID}-${VERSION}.${PACKAGING}
Run Code Online (Sandbox Code Playgroud)
当参数不是JSON构造时,它将被传递给sh -c
.
你可以按菲利普的建议去做,并将论点传递给sh -c
你自己:
CMD ["sh", "-c", "/opt/jdk/bin/java -jar ${ARTIFACTID}-${VERSION}.${PACKAGING}"]
Run Code Online (Sandbox Code Playgroud)
这两个选项基本相同.
第三种选择是将所有内容放入shell脚本中,然后运行:
COPY start.sh /start.sh
CMD ["sh", "/start.sh"]
Run Code Online (Sandbox Code Playgroud)
如果您需要执行的不仅仅是简单的命令行,这将特别有用.
归档时间: |
|
查看次数: |
808 次 |
最近记录: |