Jenkins Mesos - 错误:无法访问jarfile

时间:2015-01-20 18:46:08

标签: jenkins docker slave mesos

我正在尝试使用动态生成的Docker容器通过mesos运行Jenkins。

WARNING: Logging before InitGoogleLogging() is written to STDERR
I0120 12:03:47.100700 26501 fetcher.cpp:76] Fetching URI 'http://172.17.20.31:3000/jnlpJars/slave.jar'
I0120 12:03:47.101023 26501 fetcher.cpp:126] Downloading 'http://172.17.20.31:3000/jnlpJars/slave.jar' to '/tmp/mesos/slaves/20150107-091931-521408940-5050-11185-S7/frameworks/20150107-105325-538186156-5050-11332-0354/executors/mesos-jenkins-4bcb550d-bbcf-41ef-9f60-a401f5e4e96d/runs/521ca7ef-1285-4e95-b7bb-09c33faa6286/slave.jar'
I0120 12:03:47.213743 26501 fetcher.cpp:255] Skipped extracting path '/tmp/mesos/slaves/20150107-091931-521408940-5050-11185-S7/frameworks/20150107-105325-538186156-5050-11332-0354/executors/mesos-jenkins-4bcb550d-bbcf-41ef-9f60-a401f5e4e96d/runs/521ca7ef-1285-4e95-b7bb-09c33faa6286/slave.jar'
I0120 12:03:48.002521 26540 exec.cpp:132] Version: 0.21.1
I0120 12:03:48.035147 26543 exec.cpp:206] Executor registered on slave 20150107-091931-521408940-5050-11185-S7
Error: Unable to access jarfile /mnt/mesos/sandbox/slave.jar

我试过了:

  • 手动将slave.jar文件添加到指定的目录中 Docker容器图像
  • 手动将slave.jar文件添加到指定的目录中 主机mesos奴隶
  • 删除从站上的现有docker镜像,以确保从站正在拉动最新的docker容器。

所有结果都相同。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

默认情况下, - docker_sandbox_directory设置为/mnt/mesos/sandbox,它应该是Docker容器中映射到/tmp/mesos/slaves/<slaveId>/frameworks/<frameworkId>/executors/<executorId>/runs/<taskId>/的卷。您是否通过Web UI在沙盒中看到slave.jar?在日志中列出的主机路径怎么样? docker实际上是将沙箱目录挂载到容器内的/mnt/mesos/sandbox/吗? slave.jar有哪些权限,以及用户尝试访问它的权限是什么?

答案 1 :(得分:1)

对于遇到此问题的任何人,这是由于从docker容器运行mesos-slave引起的。我们通过将此文件夹安装到mesos slave中来解决这个问题:

/var/lib/mesos/slave:/var/lib/mesos/slave

这样,写入mesos slave docker内该目录的文件也会被写入主驱动器。