0

我创建了一个反应应用程序来启动/重置 docker 一些容器。我用 reactstrap、shelljs 和 express 来做这件事。

现在,我还想获得反馈,例如这些容器是否正在启动、是否已启动或是否已删除/不存在。

我认为获取现有容器状态的一种方法是启动它们而不是像这样的守护进程:

app.post('/api', (req, res) => {
  console.log(req.body);
  const action = req.body.action;
  const service = req.body.service;

  switch (action) {
    case "start":
      var container = sh.exec(docker-compose up -d "+ service, {async:true});
      return container;
  }

如果没有数据流,我会检测到不存在的容器。

也许我可以像上面一样返回容器对象并不断检查应用程序中的数据: container.stdout.on('data', function(data)

因为我是新手。我不太确定我是否走对了路以及如何使用该数据流。也许将其过滤到可以在应用程序 UI 中打印的变量中。

似乎我需要通过添加服务名称来为容器对象提供某种动态变量名称。

编辑:另一种解决方案是每隔几秒钟发送一次 docker ps 并解析数据。只要浏览器中的页面处于活动状态,就可以这样做。

4

0 回答 0