5

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

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

task "testubuntu" {

  driver = "docker"

  config {
      image = "ubuntu:latest"
  }

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

2 回答 2

2

另一种解决方案是设置一个“虚拟”入口点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用作入口点。但是,如果设置它,它将污染标准输出并影响您的日志记录解决方案。

于 2021-01-15T02:29:53.890 回答
0

添加container = true配置节

task "testubuntu" {

  driver = "docker"

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

  resources {
      cpu = 500
      memory = 256
      network {
          mbits = 10
      }
  }
}
于 2020-11-09T21:23:10.063 回答