我有一个Docker镜像,它应该从git存储库中提取repo(关于令牌的提示来自pretty similar question)
如果我在Dockerfile中使用
运行git clone 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存储库”错误,这是非常令人困惑的。
答案 0 :(得分:2)
两件事:
-d
代替-f
,因为.git
是目录而不是文件.git
不存在时,如果您确实要克隆它,那么当您.git
存在时,您正尝试克隆git存储库。