Я использую док-контейнеры в качестве рабов для сборки jenkins.Все подчиненные сборки, главный узел jenkins, являются контейнерами Docker, работающими на одном хосте.(без разных vms)
Ниже приведен шаблон Docker-Slave, который я использую для создания углового приложения.
![docker-1](https://i.stack.imgur.com/Aib4G.png)
![docker-2](https://i.stack.imgur.com/eV1R9.png)
- Это докеры-рабы с sshds.Открытые ключи вводятся с использованием переменных env.
- В образе док-станции сборки 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>