You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by tn...@apache.org on 2015/05/25 07:31:43 UTC
[08/20] mesos git commit: Integrate docker executor into
containerizer.
Integrate docker executor into containerizer.
Review: https://reviews.apache.org/r/29330
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/c8da93a1
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/c8da93a1
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/c8da93a1
Branch: refs/heads/master
Commit: c8da93a1956fbe32018f6d776cff620471b34bc7
Parents: 24415b7
Author: Timothy Chen <tn...@apache.org>
Authored: Tue Nov 25 21:37:51 2014 -0800
Committer: Timothy Chen <tn...@apache.org>
Committed: Fri May 22 23:13:50 2015 -0700
----------------------------------------------------------------------
src/slave/containerizer/docker.cpp | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/c8da93a1/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 92f0e85..c4e636c 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -401,8 +401,8 @@ Future<hashset<ContainerID>> DockerContainerizer::containers()
// A Subprocess async-safe "setup" helper used by
-// DockerContainerizerProcess when launching the mesos-executor that
-// does a 'setsid' and then synchronizes with the parent.
+// DockerContainerizerProcess when launching the mesos-docker-executor
+// that does a 'setsid' and then synchronizes with the parent.
static int setup(const string& directory)
{
// Put child into its own process session to prevent slave suicide
@@ -725,16 +725,18 @@ Future<pid_t> DockerContainerizerProcess::___launch(
environment[variable.name()] = variable.value();
}
- // Construct the mesos-executor "override" to do a 'docker wait'
- // using the "name" we gave the container (to distinguish it from
- // Docker containers not created by Mesos). Note, however, that we
- // don't want the exit status from 'docker wait' but rather the exit
- // status from the container, hence the use of /bin/bash.
- string override =
- "/bin/sh -c 'exit `" + flags.docker + " wait " + container->name() + "`'";
+ string command = "mesos-docker-executor --docker=" + flags.docker +
+ " --container=" + container->name();
+ command = path::join(flags.launcher_dir, command);
+
+ VLOG(2) << "Launching docker executor with command: " << command;
+
+ // Construct the mesos-docker-executor using the "name" we gave the
+ // container (to distinguish it from Docker containers not created
+ // by Mesos).
Try<Subprocess> s = subprocess(
- container->executor.command().value() + " --override " + override,
+ command,
Subprocess::PIPE(),
Subprocess::PATH(path::join(container->directory, "stdout")),
Subprocess::PATH(path::join(container->directory, "stderr")),
@@ -1328,10 +1330,9 @@ void DockerContainerizerProcess::_destroy(
// Do a 'docker rm -f' which we'll then find out about in '_destroy'
// after we've reaped either the container's root process (in the
// event that we had just launched a container for an executor) or
- // the mesos-executor (in the case we launched a container for a
- // task). As a reminder, the mesos-executor exits because it's doing
- // a 'docker wait' on the container using the --override flag of
- // mesos-executor.
+ // the mesos-docker-executor (in the case we launched a container
+ // for a task). As a reminder, the mesos-docker-executor exits
+ // because it's doing a 'docker wait' on the container.
LOG(INFO) << "Running docker stop on container '" << containerId << "'";