2016-02-13 29 views
1

這不起作用:泊塢窗運行而不設定WORKDIR不起作用

docker run -d -p 80:80 image /go/src/hello 

這工作:

docker run -w /go/src/ -d -p 80:80 image ./hello 

我感到困惑的上述結果。
我更喜歡第一個,但它不起作用。任何人都可以提供幫助。

+0

你能顯示日誌嗎? – Auzias

+0

user @ vultr:〜$ docker logs d4aa3af71c27 2016/02/13 15:59:31 [asm_amd64.s:1998] [I] http server Running on:8080 -------------上面的日誌看起來很正常。這是一個基本的(golang)http服務器,我沒有「curl localhost:8080」。但是如果我使用「docker run -w/go/src/hello -d -p 80:80 image ./hello」,它就可以工作。 (/ go/usr/hello/hello是一個可執行文件)。 – Clerk

+0

@Clerk這是什麼日誌?來自容器的那個不起作用的那個? (如果沒有,容器的日誌是什麼沒有工作?) – VonC

回答

0

這取決於ENTRYPOINT

隨着ENTRYPOINTsh -c一個默認的(你可以用一個docker inspect --format='{{.Config.Entrypoint}}' image看到它),都應該工作。
與任何其他ENTRYPOINT,它可能會做任何事情之前,預計在正確的文件夾。

另外一個docker log <container>將有助於瞭解第一次嘗試發出的輸出。

OP Clerkcomments,它是從golang Dockerfile/image,這意味着「你好」將把編譯hello可執行文件中$GOPATH/bin或內置去建立在src文件夾中的可執行文件。

+0

我嘗試了docker inspect --format ='{{。Config.Entrypoint}}'圖像,結果爲零。 – Clerk

+0

@Clerk然後回退到'docker檢查 | grep -i入口點'但當然,請用實際圖像的名稱替換''。 – VonC

+0

我試過了,它是零。我知道一些其他圖像的結果像{[/entrypoint.sh]}。但是這個是零(我從官方golang圖像修改來創建我自己的圖像)。 – Clerk