Как я могу создать образы Docker на Jenkins Pipeline, не меняя разрешения для базовой виртуальной машины Jenkins? - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу использовать Jenkins Pipeline для создания, отправки и развертывания своего образа Docker.

Я получаю следующее:

Got permission denied while trying to connect to the 
Docker daemon socket at unix:///var/run/docker.sock

Другие вопросы по StackOverflow предложитьsudo usermod -a -G docker jenkins, затем перезапустите Jenkins, но у меня нет доступа к машине, на которой запущен Jenkins - и в любом случае кажется странным, что Jenkins Pipeline, построенный вокруг Docker, не может выполнить простую команду Docker.

Как я могу построить свой докер?

pipeline {
    agent  any
    stages {    
         stage('deploy') {
            agent {
                  docker {
                    image 'google/cloud-sdk:latest'
                    args '-v /var/run/docker.sock:/var/run/docker.sock'
                  }
            }
            steps {    
                 script {    
                    docker.build  "gcr.io/myporject/mydockerimage:1"
                } 
             }
          }
    }
}

1 Ответ

0 голосов
/ 27 ноября 2018

Показанное определение конвейера пытается выполнить сборку docker внутри контейнера docker (google / cloud-sdk: latest).Вместо этого вы должны сделать следующее, учитывая, что пользователь jenkins на хосте имеет разрешение на выполнение команд docker на хосте.

pipeline {
  agent  any
  stages {
    stage('deploy') {
      steps {    
        script {    
          docker.build  "gcr.io/myporject/mydockerimage:1"
        } 
      }
    }
  }
}

Нет ничего странного в том, что jenkins не может выполнять команды docker без надлежащего разрешения при их установке.и настраивается отдельно на машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...