簡體   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