如何防止游牧任务退出?

How to keep nomad task from exiting?

在 docker 中,我们有 -t 标志来防止容器退出。如何在游牧中实现同样的事情?

我想调试是否可以从另一个服务 ping 通一个服务,所以我只想要一个带有 curl 的容器。但是,如果我尝试部署指定它的 ubuntu 图像,它会退出并继续重新启动。我该怎么做才能保持 运行?

task "testubuntu" {

  driver = "docker"

  config {
      image = "ubuntu:latest"
  }

  resources {
      cpu = 500
      memory = 256
      network {
          mbits = 10
      }
  }
}

在配置节中添加container = true

task "testubuntu" {

  driver = "docker"

  config {
      image = "ubuntu:latest"
      container = true
  }

  resources {
      cpu = 500
      memory = 256
      network {
          mbits = 10
      }
  }
}

另一个解决方案是设置一个“虚拟”入口点tail -f /dev/null

task "testubuntu" {

  driver = "docker"

  config {
      image = "ubuntu:latest"
      entrypoint = [
          "tail", "-f", "/dev/null",
      ]
  }

  resources {
      cpu = 500
      memory = 256
  }
}

当您有一个任务在容器启动时出错但日志中没有太多有用信息时,它特别有用。这个“虚拟”入口点将使容器保持活动状态,允许您进入容器并执行带有附加调试器的真实启动命令。

除了tail -f /dev/null,您还可以简单地使用yes作为切入点。但是,如果设置它,它会污染标准输出并影响您的日志记录解决方案。