Shell Mesos Marathon Docker集装箱-CommandInfo

Shell Mesos Marathon Docker集装箱-CommandInfo,shell,docker,mesos,marathon,Shell,Docker,Mesos,Marathon,最近,我在几个节点上设置了Marathon、Mesos和Docker。一切都很好,除了在启动Docker容器时遇到问题。具体来说,当Marathon执行启动Docker容器的任务时,Marathon会将/bin/sh-c'作为默认Docker命令追加。这会导致我的容器启动,然后立即退出(我可以看到它们是通过使用docker ps-a启动的) 我查看了Mesos文档,其中指出: docker映像当前支持具有入口点和/或默认命令 要使用默认命令(即:docker run image)运行docker

最近,我在几个节点上设置了Marathon、Mesos和Docker。一切都很好,除了在启动Docker容器时遇到问题。具体来说,当Marathon执行启动Docker容器的任务时,Marathon会将
/bin/sh-c'
作为默认Docker命令追加。这会导致我的容器启动,然后立即退出(我可以看到它们是通过使用
docker ps-a
启动的)

我查看了Mesos文档,其中指出:

docker映像当前支持具有入口点和/或默认命令

要使用默认命令(即:docker run image)运行docker映像,不得设置CommandInfo的值。如果设置了该值,则它将覆盖默认命令

要运行定义了入口点的docker映像,CommandInfo的shell选项必须设置为false。如果shell选项设置为true,Docker集装箱船将运行用户的命令,该命令用/bin/sh-c包装,这也将成为图像入口点的参数

这是一个很好的信息(我看到了Mesos的预期行为),但我在Marathon中没有看到关闭CommandInfo外壳的选项

我的问题是:

  • 如何将CommandInfo Shell选项(在Marathon或Mesos中)设置为false?需要设置在哪里
  • 当我在机器上运行我的
    ghost blog测试
    映像时(使用标准的
    docker run
    命令),它使用
    /entrypoint.sh npm s
    作为默认命令。我希望在使用Mesos+马拉松时有同样的行为

    提前谢谢

    根据

    cmd(字符串)

    执行的命令。该值由Mesos via封装 /bin/sh-c${app.cmd}。必须提供cmd或args。它是 在同一应用程序中同时提供cmd和args无效

    args(字符串数组)

    表示指定的替代模式的字符串数组 要运行的命令。这是出于集装箱船的安全使用 自定义Docker入口点等功能。可以使用此args字段 即使在使用默认命令执行器时也代替cmd。这 更改反映了Mesos CommandInfo中API和语义的更改 protobuf消息以版本0.20.0开始。必须使用cmd或args 供应。同时提供cmd和args是无效的 应用程序


    由于问题()您需要定义一个命令,否则不指定命令就可以了,并运行默认的docker入口点。

    最新(0.13)版本中已修复了相关的错误,但您需要使用API,因为UI中仍然存在问题)。

    您好,感谢您的深入了解。是的,不指定命令会导致
    bash-c'
    问题。但是,我可以从API运行它,它可以毫无问题地工作。似乎UI中有个bug。很高兴听到这个!我们已经对管道()中的UI进行了修复,因此您应该能够很快使用Sign UI创建此类应用。