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.
-
Modifiez le fichier
build.gradle
pour inclure le module d'extension. Dans les blocs respectifs de votre instancebuild.gradle
, avec les entrées des référentiels et des modules d'extension existants :- 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' } }
- Ajoutez le référentiel de niveau racine
jcenter
( les dépendances de module d'extension sont distribuées viajcenter
).repositories { jcenter() }
- Appliquez le module d'extension.
apply plugin: 'application' apply plugin: 'com.bmuschko.docker-java-application' mainClassName = 'hello.Application'
- 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' }
- 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 port8080
sur le conteneur, puis de marquer l'image commeomc-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' } }
- Ajoutez les modifications du script de build à extraire dans le module d'extension.
- Modifiez
gradle/wrapper/gradle-wrapper.properties
et changez la valeur dedistributionUrl
pour mettre à jour la version gradle :distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
- 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