我已尝试以各种方式运行以下命令:
shell形式:
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" ]
正如您所料,这适用于我当地。我错过了什么?
答案 0 :(得分:2)
您的Dockerfile应该具有从https://hub.docker.com/_/openjdk/获得的基本图像或等效的
或者你的Dockerfile需要安装java才能调用它... Java不是linux机器上标准命令的一部分。
你使用的节点不包含java但是nodejs是JavaScript :-)不一样......
通常,如果您希望节点应用程序在docker中调用java应用程序,最好使用节点应用程序创建节点映像,并使用java应用程序创建Java映像,并让它们相互通信。
查看本文的最佳做法https://docs.docker.com/v17.09/engine/userguide/eng-image/dockerfile_best-practices/