2015-11-19 14 views
9

最近まで、コンテナの束に対してdocker-compose upを実行していて、開始されたコンテナの1つが停止したとき、すべてのコンテナが停止しました。これは、https://github.com/docker/compose/issues/741以降、これ以上のケースではありません。これは、ドッカーの作成を使用してアプリケーションサーバーの起動、セレンハブ+ノードの起動、テストドライバの起動、テストドライバの停止時の終了などのセレンテストを実行します。1つのコンテナがドッカーの作成で停止したときに、すべてのコンテナを停止するにはどうすればよいですか?

古い動作を取り戻す方法はありますか?

答えて

5

あなたが提供したリンクに提案された回避策を試しましたか?テスト・スクリプトは、これに似た見えたと仮定すると、

$ docker-compose rm -f 
$ docker-compose build 
$ docker-compose up --timeout 1 --no-build 

アプリケーション・テストの終了、構成は終了しますとテストが終了します。この場合、以下のように

は、新しい docker-composeバージョンで、デフォルトなし-OPコマンド(エコーのようなもの、または真の)持っており、あなたのテストスクリプトを変更するには、テストコンテナを変更します。

$ docker-compose rm -f 
$ docker-compose build 
$ docker-compose up --timeout 1 --no-build -d 
$ docker-compose run tests test_command... 
$ docker-compose stop 

実行を使用すると、テストの実行から終了ステータスを取得できます。すべての依存関係ではなく、テストの出力のみが表示されます。

Reference

これが受け入れられない場合は、Docker Remote APIを参照し、その上にコンテナおよび行為のためのstopイベントのために見ることができます。

golangに書かれたdocker-genツールは、watches for container start eventsであり、設定ファイルを自動的に再生成します。

+0

おかげで多くのことを停止した場合、すべてのコンテナを停止します

--abort・オン・コンテナ出口アップドッキングウィンドウ-構成

大きい先端のために。いいえ、私はまだ提案された回避策を試していませんでした。正直言って私の目の前に回避策があることを理解するのに十分注意してリンクを読んでいます!私はできるだけ早くそれを試みます。 – insitu

+0

素晴らしい、ありがとう。 – insitu

+1

知っておくべきもう1つの重要なことは:悲しいことに、 'docker-compose run foo'コマンドは' foo'サービスの別名を設定しません(docker-compose 1.8.0-rc1)。 https://github.com/docker/compose/issues/3492#issuecomment-230931596 – jineff

0

これはあなたの問題に対する完璧な答えではありませんが、Docker用のmaestroでは、複数のDockerコンテナを1つのユニットとして管理できます。

YAMLファイルを使用してそれらをグループ化するので、慣れているはずです。

を使用でき
+0

リンクをありがとう – insitu

22

:あなたのコンテナの一つが

関連する問題