我有一个Docker镜像,它应该从git存储库中提取存储库(关于令牌的提示取自非常相似的问题(
-
如果我在 Dockerfile 中使用
运行 git 克隆 https://TOKEN@github.com/company/project.git/文件夹
然后它工作正常。
-
如果我尝试将克隆过程放入单独的文件中: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 存储库"错误,这非常令人困惑。
两件事:
- 您需要使用
-d
而不是-f
.git
因为它是一个目录而不是一个文件 - 你有你的 if 和 else 子句倒过来。 现在,您正在尝试克隆 git 存储库(如果存在
.git
而实际上.git
如果不存在,则克隆它。