![](/img/trans.png)
[英]When i try to run docker it says /bin/sh: [java,-jar,/bin/sh/hellotm-0.0.1-snapshort.jar]: not found
[英]Docker jar not found
我的 docker 文件如下所示:
FROM openjdk:9
VOLUME /tmp
ADD target/myjar-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT [“java”,”-jar”,”/app.jar”]
當我運行docker build -t myjar
它構建良好。
當我運行docker run image
時,我收到此錯誤:
/bin/sh: 1: [“java”,”-jar”,”/app.jar”]: not found
我聽說這可能是一個“相對路徑”問題? 我不知道如何修復它或 jar 應該駐留在哪里。 我需要幫助調試這個。
確保使用以下命令在根目錄ADD
jar:
ADD target/myjar-1.0-SNAPSHOT.jar /app.jar
此外,如果您在啟動圖像時沒有覆蓋命令,請使用CMD
(文檔)而不是ENTRYPOINT
(並嘗試使用更多“正常”引號而不是”
):
CMD ["java", "-jar", "/app.jar"]
編輯:
您確定要使用雙引號嗎?
編輯2:
嘗試不帶括號:
CMD java -jar /app.jar
請記住,docker 容器內部是一個 Linux(或類似的)環境。 當我們在 Windows 命令提示符(C:/>)上運行以下命令時,它缺少 bash shell
docker container commit --change='CMD ["java","-jar","/tmp/hello-world-rest-api.jar"]'boring_archimedes Advanceinfo/hello-world-rest-api:manual2
所以,我們得到以下錯誤
/bin/sh: [java,-jar,/tmp/hello-world-rest-api.jar]: 未找到
請在支持 bash shell 的 windows 中使用一個命令提示符示例 Git Bash prompt($) 注意:不要更改上面的命令,只更改命令提示符,它會 1000% 工作
您可以將ADD
指令更改為絕對路徑:
ADD target/myjar-1.0-SNAPSHOT.jar /app.jar
此錯誤僅在 Windows 10 中發生。 使用下面的命令
$> docker container commit --change='CMD java -jar /tmp/app-name.jar' <container_name> <docker_registry>/app-name:
我遇到以下錯誤: docker: /bin/sh: [java,-jar,/tmp/hello-world-rest-api.jar]: not found 下面的提交解決了我在 windows 10 中的問題:Z05B6053C41A2134E6Z 容器提交--FCchange-- BDA4E6D ='CMD java -jar /tmp/hello-world-rest- api.jar' kind_hermann in28min/hello-world-rest-api:singraul-3 For Linux machine: docker container commit --change='CMD ["java" "-jar","/tmp/hello-world-rest-api.jar"]' kind_hermann in28min/hello-world-rest-api:singraul-2
添加到Paul Rey 的回答中。 我在嘗試部署 Java 應用程序時遇到了類似的問題:
這是我的Dockerfile
:
來自 openjdk:8-jre
VOLUME /tmp
WORKDIR /app
COPY payment-collection.jks .
RUN cat /app/payment.jks
RUN keytool -list -v -keystore /app/payment.jks -storepass my-name.
RUN mkdir cert
COPY payment.jks /app/cert
COPY /target/payment-1.0.1-SNAPSHOT.jar /app
ENTRYPOINT [\"java\",\"-jar\",\"/app/${prod_jar_name}.jar\"]
EXPOSE 443
但是,當我部署 docker 應用程序時,我收到錯誤消息:
/bin/sh: 1: ["java","-jar","/app/payment-1.0.1-SNAPSHOT.jar"]: 未找到
這是我修復它的方法:
我只是從這個改變:
ENTRYPOINT [\"java\",\"-jar\",\"/app/payment-1.0.1-SNAPSHOT.jar\"]
對此:
ENTRYPOINT ["java", "-jar", "/app/payment-1.0.1-SNAPSHOT.jar"]
所以我的新Dockerfile
之后看起來像這樣:
FROM openjdk:8-jre
VOLUME /tmp
WORKDIR /app
COPY payment-collection.jks .
RUN cat /app/payment.jks
RUN keytool -list -v -keystore /app/payment.jks -storepass my-name.
RUN mkdir cert
COPY payment.jks /app/cert
COPY /target/payment-1.0.1-SNAPSHOT.jar /app
ENTRYPOINT ["java", "-jar", "/app/payment-1.0.1-SNAPSHOT.jar"]
EXPOSE 443
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.