Créer une image Docker pour l'application Java

Vous pouvez créer des applications Java en tant que conteneurs Docker de différentes manières. Cependant, dans cette solution, vous utiliserez gradle.

Utilisez un module d'extension de version nommé gradle-docker-plugin pour générer le fichier Dockerfile.

  1. Modifiez le fichier build.gradle pour inclure le module d'extension. Dans les blocs respectifs de votre instance build.gradle, avec les entrées des référentiels et des modules d'extension existants :

    1. Ajoutez les modifications du script de build à extraire dans le module d'extension.
      buildscript {
              repositories {
                  maven {
                      url 'https://plugins.gradle.org/m2/'
                  }
              }
              dependencies {
                 classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
              }
          }
      
    2. Ajoutez le référentiel de niveau racine jcenter ( les dépendances de module d'extension sont distribuées via jcenter).
      
      repositories {
          jcenter()
      }
    3. Appliquez le module d'extension.
      apply plugin: 'application'
      apply plugin: 'com.bmuschko.docker-java-application'
      
      mainClassName = 'hello.Application'
    4. Ajoutez la tâche JAR, car cela crée le fichier JAR que vous allez extraire dans l'image Docker.
      
      jar {
          enabled = true
          baseName = 'gs-accessing-data-rest'
          version = '0.1.0'
      }
    5. Configurez le module d'extension gradle pour extraire les métadonnées. Cette opération indique au module d'extension de générer un fichier de menu fixe basé sur l'image openjdk:8, d'afficher le port 8080 sur le conteneur, puis de marquer l'image comme omc-sample-app:0.1. Remplacez la location et le nom de référentiel par des valeurs valides. Si vous utilisez un nom de référentiel qui n'existe pas, il sera créé pour vous tant que vous disposez de privilèges de création de référentiel.
      docker {
          javaApplication {
              baseImage = 'openjdk:8'
              maintainer = 'Your Name "your.email@company.com"'
              ports = [8080]
              tag = 'region-code.ocir.io/my-tenant/my-repo/omc-sample-app:latest'
          }
      }
      
  2. Modifiez gradle/wrapper/gradle-wrapper.properties et changez la valeur de distributionUrl pour mettre à jour la version gradle :

    distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip

  3. Créez l'image.

    ./gradlew clean jar dockerBuildImage

L'ajout précédent à build.gradle génère l'application et le fichier Dockerfile, et exécute le build Docker pour générer et baliser l'image pour le conteneur.

Vous pouvez les vérifier en énumérant les images Docker sur votre référentiel local. Exécutez les tâches suivantes à partir d'un terminal :

docker images