码头工人镜像 git 克隆错误"fatal: Not a git repository"



我有一个Docker镜像,它应该从git存储库中提取存储库(关于令牌的提示取自非常相似的问题(

  1. 如果我在 Dockerfile 中使用

    运行 git 克隆 https://TOKEN@github.com/company/project.git/文件夹

然后它工作正常。

  1. 如果我尝试将克隆过程放入单独的文件中:Dockerfile:

    CMD [ "/update.sh" ]

update.sh:

if [ -f /folder/.git ]; then
    git clone https://TOKEN@github.com/company/project.git /folder
else
    git -C /folder pull
fi

然后我收到一个非常奇怪的错误:

致命:不是 git 存储库(或任何父目录(:.git

我的 google-fu 能够找到的所有答案都是关于"我收到致命的:运行 git pull 时不是 git 存储库"——如果你从错误的目录拉取,这是有道理的。但就我而言,git clone 会产生"致命:不是 git 存储库"错误,这非常令人困惑。

两件事:

  1. 您需要使用 -d 而不是 -f .git因为它是一个目录而不是一个文件
  2. 你有你的 if 和 else 子句倒过来。 现在,您正在尝试克隆 git 存储库(如果存在.git而实际上.git如果不存在,则克隆它。

最新更新