Невозможно вставить образ докера в реестр, используя Jenkinsfile - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь протолкнуть свое изображение через Jenkinsfile в хранилище, но когда я это делаю, я сталкиваюсь с ошибкой ниже.

Error response from daemon: Get https://mydockerregistryurl/v1/users/: x509: certificate signed by unknown authority

Я нашел много статей по этому поводу, но ничего не понял.

Может кто-нибудь попытаться мне помочь?

Ниже мой jenkinsfile.

#!groovy

pipeline {
  agent {
    node {
      label 'otd-agent'
    }
  }
  stages{
    stage('Test Stage'){
      steps{
          sh 'mvn clean test'
      }
    }
    stage('SonarQube Analysis'){
      steps{
        withSonarQubeEnv('otd-sonar') {
          sh 'mvn sonar:sonar'
        }
      }
    }
    stage('Package Stage'){
      steps{
        sh 'mvn clean package'
      }
    }
    stage('Building Docker image') {
      steps{
        script {
          sh 'docker build . -t jagathe-spike'
        }
      }
    }
    stage('Deploy Docker Image') {
      steps{
        script {
          sh 'docker login -u username -p password docker-registry-default'
          sh 'docker push docker-registry-default/otd-agathe'
        }
      }
    }
  }
}

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Если целевой реестр docker-registry-default работает на OpenShift, вы должны развернуть сертификат OCP CA, который загружается из OCP на вашем хосте Jenkins. Для получения дополнительной информации см. Установка сертификата центра сертификации для внешних реестров .

Например,

  • Загрузите сертификат CA с вашего OCP.
jenkins ~# scp root@master1.ocp.example.com:/etc/origin/master/ca.crt \
           /etc/pki/ca-trust/source/anchors/ocp-ca.crt
  • Execuste update-ca-trust для регистрации CA.
jenkins ~# update-ca-trust extract
  • Скопируйте ЦС в /etc/docker/certs.d следующим образом. ($ {} Является заполнителем, вам следует правильно заменить его своей информацией)
jenkins ~# cp /etc/pki/ca-trust/source/anchors/ocp-ca.crt \
           /etc/docker/certs.d/${docker-registry-default}:${PORT}
  • Перезапустите сервис докера для перезагрузки
jenkins ~# systemctl restart docker.service

Надеюсь, это поможет вам.

0 голосов
/ 26 июня 2019

Используйте метод withRegistry (), как описано в https://jenkins.io/doc/book/pipeline/docker/

...