2017-03-01 3 views
0

Docker Composeを使用して、Webサーバーとそのコンポーネントを構成する一連のサービスを構築し、それらを有効にしようとしています。しかし、私が必要とする「サービス」の中には、node_modulesやbower_componentsなどのディレクトリを作成するための「ボリューム」を作成するだけのものがあります。これにより、私は物事のバージョン管理をはるかにコントロールすることができます。DockerでComposeはサービスを終了できます

私が知ることができないのは、これらのサービスが終了すると(exit(0)を使用して)これらのサービスがどうなるかです。残りのサービスは正常に動作し続けますか。

私はおそらくちょうどそのようなSIGINTを待ち小さなタスク持っている「でした」: -

(function() { 
    'use strict'; 
    process.on('SIGINT', function() { 
    process.exit(0);  
    }); 
})(); 

をしかし、これはファッジのビットのように思えます。

答えて

1

サービスが稼働している場合は、特定の仕事をして、手動で殺すまでハングアップさせる代わりに、なぜdocker-compose logs -f ${service} /特定のコンテナのstdout/stderrを使用して監視しないでください。 Docker-composeストリームは、コンテナにバインドされた特定のログファイルにログを記録し、docker-compose cli、docker API、読み取り可能なファイルストリーム、その他のデータを介してデータにアクセスできます。多くの人があなたのケースで過度になるかもしれませんが、docker-compose logs -fを使用することは、コンテナ固有の活動報告を得るための非常に便利な方法です。

まだ生きている場合は、特定のファイルから書き込んだシグナルイベントハンドラを添付するnpmスクリプト (package.json経由)を作成することができます。あなたはJSプレーンなファイルを使用して、ちょうどnode file.jsを経由して、それを使用することができますcommand

 command: sh -c 'do your stuff; npm run wait-signal-server' 

サービスにこのようなコマンドを追加しますが、NPMスクリプトとして実行している/使用することは、そのようなもののために、より便利な方法であることができます - 私のoppinion

関連する問題