gpt4 book ai didi

node.js - 从 Docker 容器 Web 应用程序内部触发主机操作系统上的事件

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:41 25 4
gpt4 key购买 nike

我有一个安装了 ClamAV 的主机操作系统 (Ubuntu)。我正在这个操作系统上运行 Docker 容器。该容器正在运行一个面向公众的 Node Web 应用程序。

此 Web 应用程序中有文件上传功能,可上传到 docker 容器内的文件夹。

此文件夹已“安装”,以便可以从主机操作系统访问它。

需要扫描病毒,然后需要向 Docker 容器应用程序报告扫描结果。然后,这些结果将被处理并转发给用户。

让主机操作系统知道文件何时上传到此文件夹的最佳方式是什么?

我想到的方法是:

  • 主机操作系统轮询文件夹以检查是否发生更改(不可取)。
  • 网络应用程序触发一些 Docker“事件”(或类似事件)来告诉主机操作系统扫描特定的子文件夹(因为文件将上传到特定的子文件夹并且不会是扁平的)。
  • 在网络应用上点击的特定 URL,然后在主机操作系统以某种方式监听时触发某些操作。

不知道是否有,或者所有这些方法都可以实现。

最佳答案

消息/作业队列怎么样?为了简单起见,可以使用 Redis 的 PubSub 功能(而不是 RabbitMQ 等)并创建另一个运行 Redis 的 Docker 镜像,并将 Redis 的端口暴露给 Node 镜像和主机。然后,Node 可以编写一条有关将文件上传到 Redis 的消息,然后主机上的工作程序/监听器可以处理该消息。为了报告回来,可以在相反的方向使用类似的方法,即主机上的工作人员写入(另一个)Redis channel ,图像中的工作人员使用该 channel 。

关于node.js - 从 Docker 容器 Web 应用程序内部触发主机操作系统上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46665118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com