現在、Jenkins エージェントは Rails プロジェクトごとに docker-compose.yml を生成し、docker-compose up を実行しています。docker-compose.yml には、rbenv と他のすべての Rails 依存関係を内部に持つメインの「web」コンテナーがあります。これは、テスト Postgres DB を含む DB コンテナーにリンクされています。
問題は、実際にテストを実行して終了コードを生成する必要があるときに発生します。CI サーバーは、テスト スクリプトが exit 0 を返した場合にのみデプロイされますが、コンテナー コマンドの 1 つが失敗した場合でも、docker-compose は常に 0 を返します。
もう 1 つの問題は、Web コンテナーがテストの実行を完了した後でも、DB コンテナーが無期限に実行されるため、docker-compose up
戻らないことです。
このプロセスに docker-compose を使用する方法はありますか? コンテナーを実行できるようにする必要がありますが、Web コンテナーが完了したら終了し、終了コードを返します。現在、Docker を使用して手動で DB コンテナーをスピンアップし、 --link オプションを使用して Web コンテナーを実行しています。