簡體   English   中英

Docker jar 未找到

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

我已經使用以下命令解決了這個問題:

CMD exec java -jar "$FINALNAME"

更多細節在這里

此錯誤僅在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM