[英]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.