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

I’m creating an image from the Jenkins Docker image and trying to install the SCM Sync Configuration Plugin. I have a key created that I’m copying to the image that is also copied to the ssh keys for the Github repo. I’ve tried creating .ssh/ folders in /root as well as /var/jenkins_home. I followed this example and tried adding both of the keys to /etc/ssh/ssh_config. This didn’t work. I also tried following another answer (lost the link to it) where you can add a config file to .ssh/ containing something like this:

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

This also didn’t work. I’m using the credentials plugin + Git plugin and the credentials entry points at the /var/jenkins_home/.ssh/id_rsa file.

Has anyone gotten this plugin or git integration in general working with Jenkins in a Docker image? The errors I get are as follows:

INFO: Creating SCM repository object for url : git@github.com: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

  • How can I execute Shell script in Jenkins?
  • How to retrieve the git branch name that was built by Jenkins when using inverse branch selection strategy?
  • build error in jenkins.Fatal error: 'Cordova/CDVViewController.h' file not found
  • GIT Setup in Jenkins to find the correct pom.xml file
  • Why can't Jenkins find this .NET AssemblyFoldersEx registry key?
  • Package multiple publish profiles .pubxml after a successful build in Jenkins CI
  • Using ssh-agent with jenkins while polling SCM
  • Jenkins HTML Publisher Plugin: No external links with Jenkins 1.643
  • 3 Solutions collect form web for “Jenkins SCM Sync Configuration Plugin In Docker Won't Talk to Github”

    We use our docker jenkins container with github extensively. We have not had this issue.
    We don’t need to manually setup the key in the container, just using the credentials plugin. Give this container a shot and let me know what errors you get?

    The steps to setup in the UI are:

    1. Install the Credentials Plugin and the Github Plugin
    2. Click Mange credentials in Manage Jenkins page
      Click Manage Credentials
    3. Add your private key and give it a name
      Add your private key
    4. Reference the key by name in your job
      Reference key by username in job

    Just want to point out that the accepted answer is not the answer to this problem. The SCM sync plugin does not use the credentials plugin. So to be able to access your SCM sync repo, you need to…

    1. Generate an ssh key using ssh-keygen
    2. Go to your github repo settings and add a
      deploy key. Copy the public key id_rsa.pub generated in previous
      step.
    3. If you have already setup your SCM sync settings, you will need to unselect your current git repo and then re-add it.

    Credit goes to this blog post: https://cburgmer.wordpress.com/2013/01/02/tracking-configuration-changes-in-jenkins/

    Note: Inside a docker container the steps are the same. I just add the id_rsa to the container by mounting my host’s system .ssh folder as a volume.

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

    Here is my solution and it works for SURE.

    Go set up a personal token in github and you will get a token for example 123456abc.

    In SCM sync plugin put https://123456abc@github.com/EXAMPLE/EXAMPLE.git

    Good Luck!

    Git Baby is a git and github fan, let's start git clone.