docker - Git 2.8 无法更新子模块

标签 docker git-submodules

我正在尝试 build gRPC在 docker 镜像中,但在使用 git 2.8 版时更新子模块失败。特别是这个 Dockerfile:

FROM alpine:3.3
RUN apk update && apk add git
RUN git clone -b 'v1.17.1' --depth 1 https://github.com/grpc/grpc
RUN git --version
RUN cd grpc && git submodule update --init --depth 1

显示 git version 2.8.6并引发以下错误
Cloning into '/grpc/third_party/abseil-cpp'...
error: no such remote ref cc4bed2d74f7c8717e31f9579214ab52a9c9c610

如果我切换到 alpine:3.8我得到 git version 2.18.1并且构建成功。这是早期版本的 git 中的错误吗?有解决方法吗?

笔记:
  • 我指定 --depth 1因为我不需要提交历史。
  • 我有一些不相关的限制,这使得很难使用更新的版本。
  • 最佳答案

    正如您在“How to make shallow git submodules? ”中看到的,自 Git 2.8 以来已经进行了多次演变。

    如果可用,请尝试仅使用一个步骤:

    git clone -b 'v1.17.1' --recurse-submodule --depth 1 https://github.com/grpc/grpc 
    

    关于docker - Git 2.8 无法更新子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000895/

    相关文章:

    spring-boot - 无法连接到位于不同系统中的redis,以及在docker容器中的不同系统上运行的spring boot服务器

    docker - 从任意文件夹在构建上下文和Dockerfile文件夹中编写文件

    git - 需要在 git-archive 中处理 git-submodules

    git:如何从项目中分离出库?过滤器分支,子树?

    git - 在 git 子模块中显示未推送的提交

    docker - GitLab runner 在运行管道时无法解析主机

    spring-boot - docker 的 spring boot 教程不起作用?

    mongodb - 无法连接到 gitlab 内的 mongo docker

    git - git merge 期间的奇怪输出

    git-svn - 带有嵌套 svn :externals 的 svn 到 git 迁移