我正在从Jenkins Docker image创建图像并尝试安装SCM同步配置插件。我创建了一个密钥,我将复制到同时复制到Github存储库的ssh密钥的映像。我尝试在.ssh/
以及/root
中创建/var/jenkins_home
个文件夹。我按了this example并尝试将两个密钥添加到/etc/ssh/ssh_config
。这没有用。我还尝试了另一个答案(丢失了链接),您可以将config
文件添加到.ssh/
,其中包含以下内容:
Host github
HostName github.com
User git
IdentityFile "/var/jenkins_home/.ssh/id_rsa"
这也没有用。我使用凭据插件+ Git插件和/var/jenkins_home/.ssh/id_rsa file
处的凭据入口点。
有没有人在Docker镜像中与Jenkins一起使用这个插件或git集成?我得到的错误如下:
信息:为url创建SCM存储库对象:git@github.com:MY_REPO / scm-sync.git 2014年11月25日上午4:20:30 hudson.plugins.scm_sync_configuration.scms.SCM getConfiguredRepository 严重:创建ScmRepository时出错:没有这样的提供者:' github.com'。 2014年11月25日上午4:20:30 jenkins.model.Jenkins 警告:null java.lang.RuntimeException:ScmSyncConfiguration初始化期间出错! 在hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigurationPlugin.java:154) at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationItemListener.onLoaded(ScmSyncConfigurationItemListener.java:24) 在jenkins.model.Jenkins。(Jenkins.java:864) 在hudson.model.Hudson。(Hudson.java:82) 在hudson.model.Hudson。(Hudson.java:78) 在hudson.WebAppMain $ 3.run(WebAppMain.java:222) 引起:java.lang.NullPointerException at org.apache.maven.scm.manager.AbstractScmManager.getProviderByRepository(AbstractScmManager.java:180) 在hudson.plugins.scm_sync_configuration.SCMManipulator.scmConfigurationSettledUp(SCMManipulator.java:60) 在hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.initializeRepository(ScmSyncConfigurationBusiness.java:69) 在hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.init(ScmSyncConfigurationBusiness.java:64) 在hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigurationPlugin.java:152) ......还有5个
答案 0 :(得分:4)
只想指出接受的答案不是这个问题的答案。 SCM同步插件不使用凭证插件。因此,为了能够访问您的SCM同步存储库,您需要...
ssh-keygen
id_rsa.pub
步骤。来自此博文的信用:https://cburgmer.wordpress.com/2013/01/02/tracking-configuration-changes-in-jenkins/
注意:在docker容器中,步骤是相同的。我只需将我的主机系统id_rsa
文件夹作为卷安装,就可以将.ssh
添加到容器中。
e.g。 docker run -v /my-user/.ssh:/root/.ssh my-container
答案 1 :(得分:3)
我们广泛使用我们的docker jenkins container和github。我们没有遇到过这个问题。 我们不需要仅使用凭证插件手动设置容器中的密钥。给这个容器一个机会让我知道你得到了什么错误?
在UI中设置的步骤是:
答案 2 :(得分:2)
这是我的解决方案,它适用于SURE。
在github中设置个人令牌,您将获得一个令牌,例如123456abc。
在SCM同步插件中放置https://123456abc@github.com/EXAMPLE/EXAMPLE.git
祝你好运!