Как сохранить каталог сборки в рабочей области при использовании docker-container в качестве jenkins-build-slave? - PullRequest
0 голосов
/ 19 октября 2018

Я использую док-контейнеры в качестве рабов для сборки jenkins.Все подчиненные сборки, главный узел jenkins, являются контейнерами Docker, работающими на одном хосте.(без разных vms)

Ниже приведен шаблон Docker-Slave, который я использую для создания углового приложения.

docker-1

docker-2

  1. Это докеры-рабы с sshds.Открытые ключи вводятся с использованием переменных env.
  2. В образе док-станции сборки slave установлены npm и angular-cli.

Файл Jenkins выглядит следующим образом.Я не могу изменить файл Jenkins.Таким образом, вышестоящее ведомое устройство было помечено как узел в jenkinsfile.

pipeline {


agent {
    node {
      label 'ng6'
    }

  }
  stages {
    stage('build && SonarQube analysis') {
      steps {
        withSonarQubeEnv('XX SonarQube') {
          sh '''
             npm install
             ts-node git.version.ts
             ng build --prod
             (cd dist ; tar -czf ../xx-ng.tar.gz.)
           '''
         }
      archiveArtifacts(artifacts: 'xx-ng.tar.gz', fingerprint: true)
    }
}
Сборка проходит успешно.Я могу получить артефакты

Что я делаю Я буду монтировать .npm и node_modules в конфигурации шаблона докера.(-v)

Что я хочу

Быстрая сборка.Я хочу сохранить этот каталог рабочей области, используя опцию монтирования тома docker

/home/jenkins/workspace/xx-ng_master-ZWS24TQFDFQRGZ3QMEVULORQISDY3BPEWLM7KFGJ42I33NOQFULA

, так что node_modules должны быть постоянными, а сборка будет быстрее.Как я могу получить этот путь к каталогу и поместить его в шаблон агента докера?

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