2016-06-15 3 views
4

docker-compose up -dを使用すると、コンテナの1つが起動しない(つまり、実行コードがエラーコードで終了する)と、静かに失敗します - どうすれば大声で失敗するのですか?ドッキング中に大声で失敗する方法-dを作成する?

(正しい方法について考えていますか?私の最終目標は開発環境にDockerを使用することです。私は自分の環境をスピンアップし、すぐにエラーを知らせるようにしたいと思います。できるだけドッカーの真の道にとどまり、screen/tmuxのような追加のツールに依存することをためらっています

答えて

10

ドッキング(-d)を実行しているので、ドッキング用の作成は監視せずにコンテナを生成して終了しますどんな問題でも。フォアグラウンドでコンテナを実行した場合:

docker-compose up --abort-on-container-exit 

これは、コンテナの問題についてはっきりとしたエラーを表示するはずです。それ以外の場合は、障害から復旧するために実行中のコンテナを監視する他の高度なスケジューラ(たとえば、ユニバーサルコントロールプレーンやKubernetes)を調べることをおすすめします。


更新:あなたはdocker-compose up -dの外にスクリプト何かをしたい場合は、

docker events -f "container=${compose_prefix}_" -f "event=die"

を行うことができますし、何がそこに出力を取得する場合は、コンテナがダウンしていました。 docker-compose events | grep "container die"もあります。

+0

ありがとうございます!私は、チームメンバーが開発中にコンテナの問題をすばやく見つけられるようにするためのソリューションを探しています。おそらく '' docker-up-container-on-container-exit'を画面に/ tmuxで作成するのが答えです。^P^Qを使用して後で 'docker-up -abort-on-container-exit'から切り離すことができる状況があるかどうか知っていますか? –

+1

^P^Qが動作するには対話型の端末に接続する必要があり、そのような動作はしていないと思います。 'docker-up -abort-on-container-exit>出力&'、 'tail -f output'でシェルのバックグラウンドで実行できます。 – BMitch

1

compose/cli/main.py#L66-L68に示すように、ドッキングウィンドウ-COMPOSEが(Dockerfile)で失敗することになっているビルド:

関連する問題