2017-05-19 41 views
0

我試圖通過docker運行RedminDocker Container(來自其他映像的Dockerfile)立即退出 - 關於Dockerfile不是命令

這是我會怎麼做

  1. 複製redmine:latest搬運工形象自定義圖像
  2. 做一些額外的設置,使容器
  3. 運行自定義泊塢窗容器

所以我做了Dockerfile就像

FROM redmine 
CMD ["echo", "Redmine is ready!"] 

然後我建的圖像與docker build -t test .(在Dockerfile文件夾)

之後,docker run -d --name=test -p 8080:3000 test

我預計可以找到test碼頭集裝箱是run狀態,但它是exit(0)

我該如何讓這個容器保持活力?

FYI,docker run -d --name=test -p 8080:3000 redmine工作正常。

+1

您的容器運行CMD並退出。這就是你得到這種行爲的原因。 – tgogos

+0

看看這個:[http://stackoverflow.com/a/30209974/1561148](http://stackoverflow.com/a/30209974/1561148) – tgogos

+0

@tgogos對我來說,'FROM'關鍵字感覺一點點不清楚。根據[文檔](https://docs.docker.com/engine/reference/builder/#from),這是關於基本的形象。所以我推測運行'test'圖像會執行原始的jenkins'Dockerfile'' CMD'。所以我認爲它應該執行'CMD [「rails」,「server」,「-b」,「0.0.0.0」]'。那麼是否有任何方法可以執行原始圖像的Dockerfile'CMD'命令? –

回答

1

在您的碼頭圖像中,CMD只能使用一次。 如果你有多個,只有最後一個會運行。

您將需要添加

CMD ["rails", "server", "-b", "0.0.0.0"] 

由於CMD爲自定義映像運行服務器。目前你的CMD只在該命令執行後才執行回顯,你的容器將退出。

+0

真棒!非常感謝 –