0

嗨,到目前为止,我已经成功地完成了马拉松中的简单工作,但是当我尝试通过马拉松框架在 mesos 中部署 deocker 工作时,它卡住了。

我正在使用如下 json 文件来部署 docker 作业:

{
  "id": "pga-docker",
  "cpus": 0.2,
  "mem": 1024.0,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "pga",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 6565, "servicePort": 0, "protocol": "tcp" }
      ]
    }
  }
}

我的 pga docker 镜像在作为容器运行时没有问题,但是通过马拉松它只是不工作。它永远处于部署状态。

我正在使用以下命令行:

curl -X POST http://10.141.141.10:8080/v2/apps -d @basic-3.json -H "Content-type: application/json"

但是当我从马拉松 UI 运行相同的图像时,它就可以工作了。为了从马拉松开始,我在 UI 新作业页面的 cmd 字段中使用了“docker run --publish 6060:80 --name test --rm pga”。

有人知道为什么这会挂在命令行方法中吗?

4

1 回答 1

0

这是我在 json 文件的一些试验和错误中发现的。

我发现当我们在本地系统中运行 docker 镜像时,如果我们提到了一个入口点或一个 cmd,那么它将在运行容器时执行。但这对于 mesos/marathon 是不一样的。我的观察是,如果我在部署 json 中明确提到 cmd,那么它的工作正常。

"cmd":"sh pga-setup.sh"

我很想知道是否有人遇到过类似的问题并通过另一种方式解决。

于 2015-07-30T16:05:44.173 回答