我正在尝试配置chronos使用自定义mesos docker执行器目前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吗。
3条答案
按热度按时间h9a6wy2h1#
你需要提供一个 Docker
image
让mesos在json中运行。应该更像这样。这里有更多的例子
wqnecbli2#
我已经通过@solidsnack派生并定制了mesos docker脚本。可以在https://github.com/mudasirmirza/chronos-docker
这个脚本在没有马拉松的mesos和chronos中运行得非常好。
自述文件中提供了用法和示例。
idv4meu83#
报告中似乎提供了数据
TaskInfo
但我不知道这是从哪里来的。docker执行器希望,如果提供了数据,那么它是由marathon提供的,应该是json。显然还有别的东西在里面。关于第二个错误——
list index out of range
--这表明docker_ubuntu_test /root/docker_test.sh
没有传递给docker执行器。这确实很奇怪。