我正在尝试将Chronos配置为使用自定义的(在https://github.com/mesosphere/mesos-docker/上)。每次我尝试运行命令时,它都会失败。
我使用以下命令创建了该任务
echo '{"schedule":"R/2014-02-14T00:52:00Z/PT90M", "name":"testing_docker_executor", "command":"docker_ubuntu_test /root/docker_test.sh", "epsilon":"PT15M", "executor":"/var/lib/mesos/executors/docker" }' | http POST localhost:8080/scheduler/iso8601我还在executor中配置了日志,下面是当它失败时得到的日志。
Feb 11 13:51:36 ip6-localhost docker[13895]: Ready to serve!
Feb 11 13:51:36 ip6-localhost docker[13895]: Registered with Mesos slave
Feb 11 13:51:36 ip6-localhost docker[13895]: Task is: ct:1392126755612:2:testing_docker_executor
Feb 11 13:51:36 ip6-localhost docker[13895]: JSON from framework is rubbish
Feb 11 13:51:36 ip6-localhost docker[13895]: No JSON object could be decoded
Feb 11 13:51:36 ip6-localhost docker[13895]: Traceback (most recent call last):
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/var/lib/mesos/executors/docker", line 120, in launchTask
Feb 11 13:51:36 ip6-localhost docker[13895]: self.data = json.loads(task.data) if task.data else {}
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
Feb 11 13:51:36 ip6-localhost docker[13895]: return _default_decoder.decode(s)
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/decoder.py", line 365, in decode
Feb 11 13:51:36 ip6-localhost docker[13895]: obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/decoder.py", line 383, in raw_decode
Feb 11 13:51:36 ip6-localhost docker[13895]: raise ValueError("No JSON object could be decoded")
Feb 11 13:51:36 ip6-localhost docker[13895]: ValueError: No JSON object could be decoded
Feb 11 13:51:36 ip6-localhost docker[13895]: []
Feb 11 13:51:36 ip6-localhost docker[13895]: Traceback (most recent call last):
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/var/lib/mesos/executors/docker", line 67, in run
Feb 11 13:51:36 ip6-localhost docker[13895]: img = self.args[0]
Feb 11 13:51:36 ip6-localhost docker[13895]: IndexError: list index out of range我是不是错过了什么。我需要提供命令中的JSON吗?
发布于 2014-02-15 02:38:32
我已经分叉并定制了mesos脚本的@solid符。它可以在https://github.com/mudasirmirza/chronos-docker找到
这个脚本在没有马拉松的Mesos和Chronos中运行得很好。
用法和示例在自述文件中。
发布于 2014-02-12 05:55:49
TaskInfo中似乎提供了一些数据,但我不知道这是从哪里来的。Docker执行者期望,如果有数据提供,它是由马拉松提供的,并且应该是JSON。很明显里面还有别的东西。
至于第二个错误-- list index out of range --这意味着docker_ubuntu_test /root/docker_test.sh没有被传递给Docker。这确实很奇怪。
发布于 2015-06-26 03:17:55
您需要为在json中运行的mesos提供一个码头image。应该看上去更像这样。
{
"schedule" : "R5/2014-11-12T05:31:00.000Z/PT10S",
"epsilon" : "PT10M",
"name" : "ECHO_DATE_DOCKER",
"container": {
"type": "DOCKER",
"image": "libmesos/ubuntu"
},
"cpus": "0.5",
"mem": "256",
"command" : "date >> /tmp/ECHO_DATE_01",
"owner" : "chronos-user@example.com",
"async" : false
}还有更多的示例这里
https://stackoverflow.com/questions/21704149
复制相似问题