Repository: mesos Updated Branches: refs/heads/master 1453a4775 -> cc9fd8124
Override entrypoint when shell enabled in Docker. Review: https://reviews.apache.org/r/25403 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/cc9fd812 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/cc9fd812 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/cc9fd812 Branch: refs/heads/master Commit: cc9fd81243bdcbf468a2d8cbcb22e6527335bf00 Parents: 1453a47 Author: Timothy Chen <[email protected]> Authored: Wed Sep 17 08:49:38 2014 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Wed Sep 17 08:50:22 2014 -0700 ---------------------------------------------------------------------- src/docker/docker.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/cc9fd812/src/docker/docker.cpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp index a8becb8..1dd3dd1 100644 --- a/src/docker/docker.cpp +++ b/src/docker/docker.cpp @@ -365,6 +365,15 @@ Future<Nothing> Docker::run( } } + if (commandInfo.shell()) { + // We override the entrypoint if shell is enabled because we + // assume the user intends to run the command within /bin/sh + // and not the default entrypoint of the image. View MESOS-1770 + // for more details. + argv.push_back("--entrypoint"); + argv.push_back("/bin/sh"); + } + argv.push_back("--name"); argv.push_back(name); argv.push_back(image); @@ -373,7 +382,10 @@ Future<Nothing> Docker::run( if (!commandInfo.has_value()) { return Failure("Shell specified but no command value provided"); } - argv.push_back("/bin/sh"); + + // Adding -c here because Docker cli only supports a single word + // for overriding entrypoint, so adding the -c flag for /bin/sh + // as part of the command. argv.push_back("-c"); argv.push_back(commandInfo.value()); } else {
