Creare un'immagine Docker per l'applicazione Java

È possibile creare applicazioni Java come contenitori di Docker in più modi. Tuttavia, in questa soluzione si prevede di utilizzare lo strumento di classificazione.

Utilizzare un plugin di classificazione denominato gradle-docker-plugin per generare il file Dockerfile.

  1. Modificare il file build.gradle per includere il plugin. Nei rispettivi blocchi di build.gradle insieme alle voci per i repository e i plugin esistenti:

    1. Aggiungere le modifiche dello script di creazione per eseguire il pull nel plugin.
      buildscript {
              repositories {
                  maven {
                      url 'https://plugins.gradle.org/m2/'
                  }
              }
              dependencies {
                 classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
              }
          }
      
    2. Aggiungere il repository a livello radice di jcenter ( le dipendenze dei plugin vengono distribuite mediante jcenter).
      
      repositories {
          jcenter()
      }
    3. Applicare il plugin.
      apply plugin: 'application'
      apply plugin: 'com.bmuschko.docker-java-application'
      
      mainClassName = 'hello.Application'
    4. Aggiungere il task jar, in quanto crea il file jar che verrà inserito nell'immagine Docker.
      
      jar {
          enabled = true
          baseName = 'gs-accessing-data-rest'
          version = '0.1.0'
      }
    5. Configurare il plugin di classificazione per recuperare i metadati. In questo modo si indica al plugin di generare un file Dockerfile basato sull'immagine openjdk:8, esporre la porta 8080 nel contenitore e quindi contrassegnare l'immagine come omc-sample-app:0.1. Sostituire la tenancy e il nome repository con valori validi. Se si utilizza un nome repository che non esiste, verrà creato automaticamente, purché si disponga dei privilegi di creazione del repository.
      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. Modificare gradle/wrapper/gradle-wrapper.properties e modificare il valore di distributionUrl per aggiornare la versione di classificazione:

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

  3. Creare l'immagine.

    ./gradlew clean jar dockerBuildImage

L'aggiunta precedente a build.gradle genera l'applicazione e il file Dockerfile ed esegue la build Docker per generare e contrassegnare l'immagine per il contenitore.

È possibile verificare questo errore elencando le immagini Docker nel repository locale. Eseguire quanto segue da un terminale:

docker images