繁体   English   中英

无法从Dockerfile运行可执行文件

[英]Cannot run executable from Dockerfile

我尝试了多种方式来运行以下命令:

外壳形式:

CMD java -jar ImageTester.jar -ml LAYOUT -k $APIKEY -f ../screenshots -p $PROXY -s $URL

我收到以下错误:

/bin/sh: 1: java: not found

执行表格:

CMD [ "java", "-jar", "ImageTester.jar", "-ml LAYOUT -k $APIKEY -f ../screenshots -p $PROXY -s $URL" ]

我收到此错误:

container_linux.go:247: starting container process caused "exec: \"java\": executable file not found in $PATH"

我的Dockerfile:

FROM node:8
RUN node --version

RUN npm install
RUN npm i puppeteer

CMD [ "java", "-jar", "ImageTester.jar", "-ml LAYOUT -k $APIKEY -f ../screenshots -p $PROXY -s $URL" ]

如您所料,这在我的本地计算机上有效。 我想念什么?

您的Dockerfile应该具有从https://hub.docker.com/_/openjdk/获得的基本映像或等效映像

或您的Dockerfile必须先安装Java才能调用它。Java不是Linux机器上标准命令的一部分。

您正在使用不包含Java但包含JavaScript的nodejs的node :-)不一样...

通常,尽管您希望节点应用程序在docker中调用Java应用程序,但最好的做法是使用该节点应用程序创建一个节点映像,并使用该Java应用程序创建一个Java映像,然后让它们彼此通信。

请参阅本文以获取最佳实践https://docs.docker.com/v17.09/engine/userguide/eng-image/dockerfile_best-practices/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM