Repository: mesos Updated Branches: refs/heads/master 9e68e980a -> b80482c07
Allow multiple colons for docker image. Review: https://reviews.apache.org/r/24916 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b80482c0 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b80482c0 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b80482c0 Branch: refs/heads/master Commit: b80482c07c8a9d354dc38d170bf41b038f52356e Parents: 9e68e98 Author: Timothy Chen <[email protected]> Authored: Thu Aug 21 17:25:20 2014 -0700 Committer: Jie Yu <[email protected]> Committed: Thu Aug 21 17:25:20 2014 -0700 ---------------------------------------------------------------------- src/slave/containerizer/docker.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/b80482c0/src/slave/containerizer/docker.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp index e3c29b8..0febbac 100644 --- a/src/slave/containerizer/docker.cpp +++ b/src/slave/containerizer/docker.cpp @@ -441,17 +441,15 @@ Future<Nothing> DockerContainerizerProcess::pull( argv.push_back(flags.docker); argv.push_back("pull"); - vector<string> parts = strings::split(dockerInfo.image(), ":"); - - if (parts.size() > 2) { - return Failure("Not expecting multiple ':' in image: " + - dockerInfo.image()); - } - - if (parts.size() == 2) { + // Check if the specified image has a tag. Also split on "/" in case + // the user specified a registry server (ie: localhost:5000/image) + // to get the actual image name. If no tag was given we add a + // 'latest' tag to avoid pulling down the repository. + vector<string> parts = strings::split(dockerInfo.image(), "/"); + if (strings::contains(parts.back(), ":")) { argv.push_back(dockerInfo.image()); } else { - argv.push_back(parts[0] + ":latest"); + argv.push_back(dockerInfo.image() + ":latest"); } VLOG(1) << "Running " << strings::join(" ", argv);
