我有一个 OpenShift
buildconfig
,它引用 bc.spec.source
下的 Git 存储库,如下所示:
git:
uri: ssh://openshift@my-server/my-repo
ref: master
当我使用
git clone ssh://openshift@my-server/my-repo
在 OpenShift 外部克隆存储库时,我最终会进入默认分支 master
。然而,当我在 OpenShift 中开始构建时,它遇到了错误,并且 oc logs
列出了以下详细信息:
Adding cluster TLS certificate authority to trust store
Cloning "openshift@my-server/my-repo" ...
error: fatal: couldn't find remote ref master
fatal: the remote end hung up unexpectedly
为什么默认分支
master
对于 OpenShift 显然是不可见的?如何进一步诊断和解决这个问题?
谜团现在解开了:到目前为止,我还没有明确提到
my-server
上的 Git 存储库也受到访问控制列表 (ACL) 的保护。
我忘记设置某些默认 ACL(带有
setfacl -d
)。这导致了 Git 存储库中新活动创建的文件具有过于严格的访问权限的情况。因此 OpenShift 的 Git 客户端无法访问某些分支。
更正
my-server
上的所有 ACL 和默认 ACL 后,OpenShift 中的构建现在可以按预期工作。