2017-05-10 4 views
0

もともと私Dockerfile読み取りの最終行:ENTRYPOINT後にドッキングウィンドウ・コンコンテナを実行したまま

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

は、私がコンテナを作成し、マウントされた後にのみ実行するコマンドを必要とするので、私に変更:

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

変更によって私の元の問題は修正されましたが、別のものが作成され、コマンドが終了した後にコンテナが停止します。

コンテナの稼働を維持するには、&& while true; do sleep 1000; doneのようなものを追加します。

これはちょっとハッキリしているようですが、コンテナを止めるより良い方法があるのでしょうか?

注:ドッカーコマンドを実行するときに人々がフラグを使用するオンラインでの提案があります。だから私はdocker-composeを使ってこのコンテナを初期化していることを指摘します。

答えて

1

私は&& sleep infinityを使用します。 (busybox sleepにはのみ、infinityはありません)。

+0

busyboxの詳細をご理解いただきありがとうございます。私はまだ別の解決策を探しているので、これを開いたままにしておきます。私はENTRYPOINTは通常、コンテナを実行可能ファイルとして使用したいときに使用すると思います。私の場合は、コンテナが初期化されたときにコマンドを実行したいだけです。理由は、コンテナを初期化する前に存在しない機密キーファイルを使用してコマンドを実行しているという理由です(添付されたボリュームにあるため)。 –

関連する問題