2017-05-10 111 views
0

本來我Dockerfile讀的最後一行:保持搬運工,撰寫容器中運行的入口點後

RUN puppet apply /etc/puppetlabs/puppet/master.pp 

我需要的命令只有一次創建容器和安裝運行,所以我改成:

ENTRYPOINT puppet apply /etc/puppetlabs/puppet/master.pp 

該更改修復了我原來的問題,但創建了另一個,容器在命令完成後停止。

我發現我可以通過添加諸如&& while true; do sleep 1000; done之類的東西來保持容器運行。

這似乎有點冒失鬼,我想知道是否有更好的方法來保持我的容器停止?

注意:我在網上看到了一些人們在運行docker命令時使用標誌的建議。所以我會指出我正在使用docker-compose初始化這個容器。

回答

1

我使用&& sleep infinity。 (請注意busybox sleep不提供infinity - 只有coreutils做。)

+0

感謝很高興知道和欣賞busybox上的細節。我現在仍將繼續開放,因爲我仍在尋找其他解決方案。我猜ENTRYPOINT通常用於當你想使用容器作爲可執行文件。在我的情況下,我只想在容器初始化時運行一個命令。原因是我正在使用在初始化容器之前不存在的敏感密鑰文件運行命令(因爲它位於附加捲中)。 –

相關問題