Gie*_*ers 7 git ssh git-clone jenkins docker
我知道在 SO 上已经有很多关于这个主题的问题,我尝试了他们提出的几乎所有解决方案,但我目前无法让它工作(我想要的方式)是)。
我有一个在 Jenkins 中启动的 docker 容器,在这个 docker 容器中,我尝试克隆一个私有存储库。为此,我需要将我的公共 Jenkins 密钥添加到我的 Git 存储库中,并且我的 docker 容器需要知道这个 SSH 密钥。
我已经能够通过在 my 中执行以下操作来做到这一点Jenkinsfile:
docker.image('php_jenkins_test').inside('--env COMPOSER_HOME=$WORKSPACE/.composer -v /etc/passwd:/etc/passwd:ro -v /home/jenkins/.ssh:/home/jenkins/.ssh:ro') {
sshagent(['jenkins-ssh-publickey']) {
sh "./test/run-tests.sh"
}
}
Run Code Online (Sandbox Code Playgroud)
由于以下原因,我将我的etc/passwd和/home/jenkins/.ssh作为只读卷挂载:
/etc/passwd.known_hosts(和我的密钥?)需要在我的 docker 容器中知道。由于/etc/passwd将 jenkins 用户映射到/home/jenkins,我还必须在我的来宾计算机上安装 Jenkins 的 SSH 目录。sshagent-command树立SSH插座等等,我的钥匙是我的容器内访问(纠正我,如果我错了,我是相当新的詹金斯和码头工人)。就像我说的:这已经有效了。通过此设置,我可以在 Jenkins 的 docker 容器中克隆私有 git 存储库。
我发现安装/home/jenkins/.ssh有点......危险。我挂载为只读,但与70个多家开发商的组织工作,我如果其中一个需要我的代码示例和删除:ro,没准他们会搞砸了詹金斯的.ssh-folder,这是非常,非常坏的。
因此,我正在寻找一种无需挂载 - 文件.ssh夹即可克隆私有存储库的方法。毕竟,这不是sshagent-plugin 的用途吗?
由于我/etc/passwd的/home/jenkinsdocker容器安装了它,它会在某个时间点查找-folder。由于sshagent会处理密钥,我想我只需要关心known_hosts-file。所以我在我的 Dockerfile 中尝试了以下内容:
RUN mkdir -p /home/jenkins/.ssh
RUN chmod 700 /home/jenkins/.ssh
RUN ssh-keyscan -t rsa (url to git) >> /home/jenkins/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
不幸的是,这将在root-user下创建目录和文件,因此当我以jenkins-user身份运行我的容器(Jenkins docker 插件所做的)时,我无法访问/home/jenkins/....
因此,我尝试在由 Jenkins 用户运行的容器中的 shell 脚本中执行此操作:
mkdir -p /home/jenkins/.ssh
chmod 700 /home/jenkins/.ssh
ssh-keyscan -t rsa (url to git) >> /home/jenkins/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
再一次:没有运气,因为 jenkins-user 不允许在/home/.
回到Dockerfile,让我们尝试添加以下行:
RUN chown $(id -u $(whoami)):$(id -g $(whoami)) -R /home/jenkins
Run Code Online (Sandbox Code Playgroud)
再次没有运气,因为whoami返回root,而不是jenkins。因此,让我们对其进行硬编码:
RUN chown $(id -u jenkins):$(id -g jenkins) -R /home/jenkins
Run Code Online (Sandbox Code Playgroud)
再一次,没有运气。我现在得到的消息是"id: jenkins: no such user"。
所以你知道了:我被卡住了。如何在 Jenkins 的.sshdocker容器中克隆私有存储库而无需挂载-folder?非常感谢有关此主题的任何帮助。我现在盯着这个太久了......
| 归档时间: |
|
| 查看次数: |
2025 次 |
| 最近记录: |