2017-10-10 7 views
-1

ClamAVがインストールされたホストOS(Ubuntu)があります。このOSでDockerコンテナを実行しています。このコンテナは公開されているノードWebアプリケーションを実行しています。DockerコンテナのWebアプリケーション内からホストOSのトリガーイベント

このウェブアプリケーション内には、ドッカーコンテナ内のフォルダにアップロードされるファイルアップロード機能があります。

このフォルダは、マウントされているため、ホストOSからアクセスできます。

ウイルススキャンが必要な場合は、スキャン結果とともにDockerコンテナアプリケーションにレポートする必要があります。これらの結果は、処理され、ユーザーに中継されます。

ファイルがこのフォルダにアップロードされたときにホストOSに知らせるにはどうすればよいですか?私の心を介して行っている

の方法があります。

  • ホストOSのポーリングフォルダを変更(望ましくない)をチェックします。
  • Webアプリケーションは、特定のサブフォルダをスキャンするようにホストOSに指示するDockerの「イベント」(または同様のもの)をトリガします(ファイルは特定のサブフォルダにアップロードされ、フラットにならないためです)。
  • Webアプリケーションでヒットした特定のURLで、ホストOS上で何か起きるようにトリガします。

これらの方法のいずれか、またはすべてが達成可能かどうかは考えられません。

+1

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0

メッセージ/ジョブキューはどうですか?簡潔にするために、(RabbitMQなどの代わりに)RedisのPubSub機能を使用して、Redisのポートがノードイメージとホストの両方に公開されたRedisを実行する別のDockerイメージを作成することができます。次に、Nodeはファイルのアップロードに関するメッセージをRedisに書き込むことができ、ホスト上のワーカー/リスナーはメッセージを処理できます。戻って報告するために、同様のアプローチを逆方向に使用することができます。つまり、ホスト上のワーカーが(別の)Redisチャネルに書き込んで、イメージ内のワーカーが消費します。

関連する問題