关于git:Docker中的Jenkins SCM Sync配置插件不会与Github对话

Jenkins SCM Sync Configuration Plugin In Docker Won't Talk to Github

我正在从Jenkins Docker映像创建一个映像,并尝试安装SCM同步配置插件。我已经创建了一个密钥,我正在将其复制到映像中,该映像也复制到Github repo的ssh密钥中。我试过在/root/var/jenkins_home中创建.ssh/文件夹。我遵循这个例子,尝试将这两个键都添加到/etc/ssh/ssh_config中。这不管用。我还尝试遵循另一个答案(失去了与它的链接),您可以在其中向.ssh/添加一个包含如下内容的config文件:

1
2
3
4
Host github
    HostName github.com
    User git
    IdentityFile"/var/jenkins_home/.ssh/id_rsa"

这也不管用。我使用的是CredentialsPlugin+Git插件和/var/jenkins_home/.ssh/id_rsa file上的Credentials入口点。

有没有人得到这个插件或Git集成一般与Jenkins在Docker的形象?我得到的错误如下:

INFO: Creating SCM repository object for url : [email protected]:MY_REPO/scm-sync.git
Nov 25, 2014 4:20:30 AM hudson.plugins.scm_sync_configuration.scms.SCM getConfiguredRepository
SEVERE: Error creating ScmRepository : No such provider: 'github.com'.
Nov 25, 2014 4:20:30 AM jenkins.model.Jenkins
WARNING: null
java.lang.RuntimeException: Error during ScmSyncConfiguration initialisation !
at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigurationPlugin.java:154)
at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationItemListener.onLoaded(ScmSyncConfigurationItemListener.java:24)
at jenkins.model.Jenkins.(Jenkins.java:864)
at hudson.model.Hudson.(Hudson.java:82)
at hudson.model.Hudson.(Hudson.java:78)
at hudson.WebAppMain$3.run(WebAppMain.java:222)
Caused by: java.lang.NullPointerException
at org.apache.maven.scm.manager.AbstractScmManager.getProviderByRepository(AbstractScmManager.java:180)
at hudson.plugins.scm_sync_configuration.SCMManipulator.scmConfigurationSettledUp(SCMManipulator.java:60)
at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.initializeRepository(ScmSyncConfigurationBusiness.java:69)
at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness.init(ScmSyncConfigurationBusiness.java:64)
at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.init(ScmSyncConfigurationPlugin.java:152)
... 5 more


只是想指出,被接受的答案并不是这个问题的答案。SCM同步插件不使用凭据插件。为了能够访问您的SCM同步报告,您需要…

  • 使用ssh-keygen生成ssh密钥
  • 转到Github回购设置并添加部署密钥。复制以前生成的公钥id_rsa.pub。步骤。
  • 如果已经设置了SCM同步设置,则需要取消选择当前的git repo,然后重新添加它。
  • 这篇博文的作者是:https://cburgmer.wordpress.com/2013/01/02/tracking-configuration-changes-in-jenkins/

    注意:在码头集装箱内,步骤相同。我只是将主机的系统.ssh文件夹作为卷装入容器中,将id_rsa添加到容器中。

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


    我们使用我们的码头詹金斯集装箱与吉特枢纽广泛。我们没有这个问题。我们不需要手动设置容器中的密钥,只需要使用凭证插件。给这个容器一次机会,让我知道你会犯什么错误?

    在UI中设置的步骤如下:

  • 安装凭据插件和Github插件
  • 单击Manage Jenkins页面中的Mange Credentials。Click Manage Credentials
  • 添加您的私钥并为其命名Add your private key
  • 在工作中按名称引用密钥Reference key by username in job

  • 这是我的解决方案,它确实有效。

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

    在配置管理同步插件中放入https://[email protected]/EXAMPLE/EXAMPLE.git

    祝你好运!