Как создавать изображения докеров с помощью декларативного файла Jenkins
Я новичок в использовании Дженкинс....
Я пытаюсь автоматизировать создание изображения (для хранения в репозитории) с помощью декларативного файла Jenkinsfile. Я считаю, что документация сбивает с толку (в лучшем случае). Проще говоря, как я могу преобразовать следующий сценарий (из документов)
node {
checkout scm
def customImage = docker.build("my-image:${env.BUILD_ID}")
customImage.push()
}
декларативному Jenkinsfile....
Ответы
Ответ 1
You can Вы можете использовать скриптовые конвейерные блоки в декларативном конвейере в качестве обходного пути
pipeline {
agent any
stages {
stage('Build image') {
steps {
echo 'Starting to build docker image'
script {
def customImage = docker.build("my-image:${env.BUILD_ID}")
customImage.push()
}
}
}
}
}
Ответ 2
Я использую следующий подход:
steps {
withDockerRegistry([ credentialsId: "<CREDENTIALS_ID>", url: "<PRIVATE_REGISTRY_URL>" ]) {
// following commands will be executed within logged docker registry
sh 'docker push <image>'
}
}
Где:
- CREDENTIALS_ID означает ключ в Jenkis, под которым вы храните учетные данные в своем реестре докеров.
- PRIVATE_REGISTRY_URL означает URL-адрес вашего приватного реестра докеров. Если вы используете концентратор докеров, он должен быть пустым.