从github构建docker镜像 - 子模块不克隆

时间:2018-01-19 10:43:02

标签: git docker github

我有一个应用程序,它由多个服务组成,这些服务存在于不同的Github存储库中。为了查明全局版本,还有一个额外的存储库,包括前者作为Git子模块。

如果我可以使用这个repo构建Docker容器会很好,例如。 docker build github.com/org/repo#1.0:admin(构建admin容器)。如果没有子模块,则无效,但如果admin是子模块,则不会提取(我认为docker build未使用git clone --recursive),因此docker build会出现此错误:

  

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /tmp/docker-build-git205355788/admin/Dockerfile: no such file or directory

确实,目录admin为空。 https://docs.docker.com/engine/reference/commandline/build/#git-repositories说它应该递归复制,但似乎没有。我做错了还是这个错误?

  

> docker --version

     

Docker version 17.12.0-ce, build c97c6d6

2 个答案:

答案 0 :(得分:1)

您需要在Dockerfile中执行

安装git

git clone

然后构建

参见例如

https://hub.docker.com/r/k3ck3c/nethogs_git/

答案 1 :(得分:0)

您需要致电

RUN git submodule init && git submodule update

在你的Dockerfile中