webentwicklung-frage-antwort-db.com.de

Wie man Andockbilder mit einer deklarativen Jenkins-Datei erstellt

Ich bin neu im Umgang mit Jenkins ....

Ich versuche, die Erzeugung eines Bildes (zur Aufbewahrung in einem Repo) mit einer deklarativen Jenkinsfile zu automatisieren. Ich finde die Dokumentation verwirrend (am besten). Einfach ausgedrückt, wie kann ich das folgende Skript-Beispiel konvertieren (aus den Dokumenten )

node {
    checkout scm
    def customImage = docker.build("my-image:${env.BUILD_ID}")
    customImage.Push()
}

zu einem deklarativen Jenkinsfile ....

9
MarkH

Sie können gescriptete Pipeline-Blöcke in einer deklarativen Pipeline verwenden als Workaround

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()
                }
            }
        }
    }
}
15
v.karbovnichy

Ich verwende folgenden Ansatz:

steps {
   withDockerRegistry([ credentialsId: "<CREDENTIALS_ID>", url: "<PRIVATE_REGISTRY_URL>" ]) {
      // following commands will be executed within logged docker registry
      sh 'docker Push <image>'
   }
}

Woher:

  • CREDENTIALS_ID steht für Schlüssel in Jenkis, unter dem Sie Anmeldeinformationen in Ihrer Docker-Registrierung speichern.
  • PRIVATE_REGISTRY_URL steht für die URL Ihrer privaten Docker-Registry. Wenn Sie einen Docker-Hub verwenden, sollte dieser leer sein.
1
shobull