Docker中的Jenkins SCM Sync配置插件无法与Github对话

时间:2014-11-25 22:33:34

标签: git jenkins docker

我正在从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个

3 个答案:

答案 0 :(得分:4)

只想指出接受的答案不是这个问题的答案。 SCM同步插件不使用凭证插件。因此,为了能够访问您的SCM同步存储库,您需要...

  1. 使用ssh-keygen
  2. 生成ssh密钥
  3. 转到您的github repo设置并添加一个 部署密钥。复制之前生成的公钥id_rsa.pub 步骤。
  4. 如果您已经设置了SCM同步设置,则需要取消选择当前的git repo,然后重新添加。
  5. 来自此博文的信用: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中设置的步骤是:

  1. 安装Credentials插件和Github插件
  2. 单击“管理Jenkins”页面中的“管理凭据” Click Manage Credentials
  3. 添加您的私钥并为其命名 Add your private key
  4. 在作业中按名称引用密钥 Reference key by username in job

答案 2 :(得分:2)

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

在github中设置个人令牌,您将获得一个令牌,例如123456abc。

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

祝你好运!