浏览代码

Support submodules when building from a gh repo

Docker-DCO-1.1-Signed-off-by: Song Gao <song@gao.io> (github: songgao)
Song Gao 11 年之前
父节点
当前提交
c9ae66ffe3
共有 2 个文件被更改,包括 3 次插入2 次删除
  1. 2 1
      docs/sources/reference/commandline/cli.rst
  2. 1 1
      server.go

+ 2 - 1
docs/sources/reference/commandline/cli.rst

@@ -194,7 +194,8 @@ The files at ``PATH`` or ``URL`` are called the "context" of the build. The
 build process may refer to any of the files in the context, for example when
 build process may refer to any of the files in the context, for example when
 using an :ref:`ADD <dockerfile_add>` instruction.  When a single ``Dockerfile``
 using an :ref:`ADD <dockerfile_add>` instruction.  When a single ``Dockerfile``
 is given as ``URL``, then no context is set.  When a Git repository is set as
 is given as ``URL``, then no context is set.  When a Git repository is set as
-``URL``, then the repository is used as the context
+``URL``, then the repository is used as the context. Git repositories are
+cloned with their submodules (`git clone --recursive`).
 
 
 .. _cli_build_examples:
 .. _cli_build_examples:
 
 

+ 1 - 1
server.go

@@ -457,7 +457,7 @@ func (srv *Server) Build(job *engine.Job) engine.Status {
 		}
 		}
 		defer os.RemoveAll(root)
 		defer os.RemoveAll(root)
 
 
-		if output, err := exec.Command("git", "clone", remoteURL, root).CombinedOutput(); err != nil {
+		if output, err := exec.Command("git", "clone", "--recursive", remoteURL, root).CombinedOutput(); err != nil {
 			return job.Errorf("Error trying to use git: %s (%s)", err, output)
 			return job.Errorf("Error trying to use git: %s (%s)", err, output)
 		}
 		}