3 Construire et publier une image Docker
wpetit edited this page 2022-10-17 16:25:18 +02:00

Construire et publier une image Docker

La librairie Jenkins "Cadoles" met à disposition une méthode permettant de construire, valider puis optionnellement publier une image Docker sur un dépôt compatible.

Pour utiliser cette méthode, votre fichier Jenkinsfile doit avoir la ligne d'import suivant (par exemple, sur la première ligne):

@Library("cadoles") _

Cette ligne indique à Jenkins d'importer la librairie définie par le projet https://forge.cadoles.com/Cadoles/Jenkins.

Ensuite, créez un nouveau stage dans votre fichier Jenkinsfile:

stage("Build and publish container image") {
  steps {
    script {
      // On récupère le tag du commit courant
      Boolean currentTag = sh(script: 'git tag --points-at HEAD | head -n 1', returnStdout: true).trim()

      // On retrouve le tag de l'image "par défaut"
      String defaultTag = sh(returnStdout: true, script: 'git describe --always').trim()
    
      container.buildAndPublishImage([
       'dockerfile': 'path/to/my/Dockerfile',
       'imageName': 'reg.cadoles.com/cadoles/myAppImageName',
       'imageTag': currentTag ?: defaultTag, // On utilise soit le tag courant, soit le tag par défaut
       'dryRun': !currentTag, // On ne déploie l'image sur le registre que si le commit courant est taggé
      ])
    }
  }
}

Par défault, l'image sera publiée sur le dépôt Cadoles https://reg.cadoles.com.

La liste des différentes options pour la méthode container.buildAndPublishImage() est disponible à l'adresse https://forge.cadoles.com/Cadoles/Jenkins/src/branch/master/vars/container.groovy