2017-03-08 31 views
2

當我在我的映像上運行docker命令時,它出錯。我應該在我的Dockerfile for CMD中包含什麼想法?目前我有java -jar my.jar在裏面。碼頭運行映像導致語法錯誤/ bin/sh

docker run startlog 
/bin/sh: 1: Syntax error: Unterminated quoted string 
+3

請在您的問題中包含[mcve](http://stackoverflow.com/help/mcve)。 – BMitch

+0

您需要向我們提供有關Dockerfile內容的更多詳細信息,以便我們提供幫助。另外你提供的輸出顯示有一個未終止的引用字符串在哪裏。你有沒有檢查你的Dockerfile,一切都終止了好嗎? – Adrian

+0

FROM的openjdk:8 RUN MKDIR -p/TMP/startlog/ ADD GS-其餘-HATEOAS-0.1.0.jar/TMP/startlog/ EXPOSE 8080 入口點[ 「Java」 的, 「罐子」,「/ tmp/startlog/gs-rest-hateoas-0.1.0.jar「] – agnihot

回答

5

從您的評論(這確實應該編輯你的問題):

FROM openjdk:8 
RUN mkdir -p /tmp/startlog/ 
ADD gs-rest-hateoas-0.1.0.jar /tmp/startlog/ 
EXPOSE 8080 
ENTRYPOINT ["java", "-jar", 「/tmp/startlog/gs-rest-hateoas-0.1.0.jar"] 

你沒有在/tmp/startlog前一個雙引號,而不是你有一個「智能引號」,這對編程無效。請拋棄任何編輯創建的內容,不要將其用於更多編碼。

什麼用智能報價情況是,入口點JSON是不是有效的JSON,所以它被運行作爲

/bin/sh -c '["java", "-jar", 「/tmp/startlog/gs-rest-hateoas-0.1.0.jar"]' 

和之前/ bin/sh的查找命令["java",它看到一個分析問題的無與倫比的報價。

+0

這也解決了我的問題,謝謝,現在我只是想知道這個智能引用到底是如何進入我的dockerfile的。 – Moulde