Jenkins在Docker中的SCM Syncconfiguration插件不会与Github进行通信

我从Jenkins Docker镜像创build镜像,并尝试安装SCM Syncconfiguration插件。 我有一个创build的密钥,我正在复制到图像,也被复制到Github回购的SSH密钥。 我已经尝试在/root以及/var/jenkins_home创build.ssh/文件夹。 我遵循这个例子,并试图添加两个键到/etc/ssh/ssh_config 。 这没有奏效。 我也尝试了下面的另一个答案(失去了它的链接),你可以添加一个config文件到.ssh/包含这样的东西:

 Host github HostName github.com User git IdentityFile "/var/jenkins_home/.ssh/id_rsa" 

这也没有工作。 我在/var/jenkins_home/.ssh/id_rsa file使用凭证插件+ Git插件和凭据入口点。

有没有人得到这个插件或git集成通常在一个Docker图像与Jenkins合作? 我得到的错误如下:

INFO:为url创buildSCM资源库对象:git@github.com:MY_REPO / scm-sync.git hudson.plugins.scm_sync_configuration.scms.SCM getConfiguredRepository SEVERE:创buildScmRepository时出错:No such提供者:“github.com”。 2014年11月25日上午4:20:30 jenkins.model.Jenkins警告:null java.lang.RuntimeException:ScmSyncConfiguration初始化期间出错! 在jenkins.model.Jenkins处的hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationItemListener.onLoaded(ScmSyncConfigurationItemListener.java:24)处的hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigurationPlugin.java:154)(Jenkins.java:864) (Hudson.java:82)在hudson.model.Hudson。(Hudson.java:78)在hudson.WebAppMain $ 3.run(WebAppMain.java:222)由:java.lang.NullPointerException在hudson.plugins.scm_sync_configuration.SCMManipulator.scmConfigurationSettledUp(SCMManipulator.java:60)at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.initializeRepository(ScmSyncConfigurationBusiness)上的org.apache.maven.scm.manager.AbstractScmManager.getProviderByRepository(AbstractScmManager.java:180) .java:69)at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.init(ScmSyncConfigurationBusiness.java:64)at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigur ationPlugin.java:152)… 5更多

我们广泛使用我们的docker jenkins容器和github。 我们没有这个问题。 我们不需要在容器中手动设置密钥,只需使用凭证插件即可。 给这个容器一枪,让我知道你得到什么错误?

在UI中设置的步骤是:

  1. 安装Credentials插件和Github插件
  2. 在pipe理Jenkins页面中单击pipe理凭据 点击管理凭证
  3. 添加你的私人密钥,并给它一个名字 添加你的私钥
  4. 在工作中通过名字引用密钥 在作业中通过用户名的参考键

只是想指出,接受的答案不是这个问题的答案。 SCM同步插件不使用凭证插件。 所以要能够访问您的SCM同步回购,您需要…

  1. 使用ssh-keygen生成一个ssh密钥
  2. 转到您的github回购设置并添加一个部署密钥。 复制上一步中生成的公钥id_rsa.pub
  3. 如果你已经设置了你的SCM同步设置,你将需要取消select你当前的git仓库,然后重新添加它。

信贷到这个博客文章: https : //cburgmer.wordpress.com/2013/01/02/tracking-configuration-changes-in-jenkins/

注意:docker集装箱内的步骤是相同的​​。 我只是将id_rsa添加到容器中,方法是将主机的system .ssh文件夹挂载为一个卷。

例如docker run -v /my-user/.ssh:/root/.ssh my-container

这是我的解决scheme,它适用于SURE。

在github中设置一个个人令牌,你会得到一个令牌,例如123456abc。

在SCM同步插件中joinhttps://123456abc@github.com/EXAMPLE/EXAMPLE.git

祝你好运!