我有一个应用程序,它由多个服务组成,这些服务存在于不同的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
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要致电
RUN git submodule init && git submodule update
在你的Dockerfile中