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