我尝试做一些ssh + git子模块构建,最初我在尝试拉取代码时遇到这个错误:
Submodule 'xxx' (git@host:thing/subdir/repo.git) registered for path 'repo'
Submodule 'yyy' (git@host:thing/subdir/yyy.git) registered for path 'yyy'
Cloning into '/home/jenkins/agent/workspace/thing/AAA/releaser/xxx'...
No user exists for uid 1000
fatal: Could not read from remote repository.
这让我想到了这个解决方案:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- all
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 65534
现在,这工作,但我看到一些非关键错误,无法保存主机键到/.ssh,但它仍然 checkout 代码,所以我不在乎,因为每次运行就像它的第一次。
但是,我现在遇到了一个不同的问题,确实需要我永久地解决这个用户问题:
+ mc alias set jenkins-user ****
mc: <ERROR> Unable to save new mc config. mkdir /.mc: permission denied.
我需要运行minio mc客户端-当我给予它creds时,它试图将它们保存到/.mc,但它不能,别名命令失败,整个构建也失败。
因此,我需要找出一个更好的方法来解决初始用户问题,或者告诉它,当在这个pod中运行时,使用一个非特权目录,如/tmp。
因此,如果有人能提供帮助,我愿意为任何一个问题提供解决方案
1条答案
按热度按时间o8x7eapl1#
好吧,我最终解决了它与Kubernetes的变化和Dockerfile的变化混合。
首先,我必须将具有正确用户ID的Jenkins用户添加到包含所需内容的自定义Docker映像中
然后,我不得不更新pod定义,使其在之前抱怨的同一用户下运行: