[JAVA] Créer une image de conteneur Docker avec JRE8 / JDK8 sur Amazon Linux
Contexte
- Créer une image de conteneur contenant JRE (ver8 pour diverses raisons) sur Amazon Linux
- Il y a différents antécédents dans le passé et c'est 8
- Notez que les noms de package de JDK et JRE sont confondus.
- Notez chaque taille d'image
Création d'image de conteneur JRE
- Dockerfile pour JRE
- Headless est inclus uniquement dans JRE
- Le
java-1.8.0-openjdk
non marqué semble avoir une grande capacité car il contient des icônes, etc.
- En fait, je pense qu'il est souvent utilisé dans les constructions en plusieurs étapes, mais cette fois je vais le simplifier et le déplacer avec l'image de base
Dockerfile
FROM amazonlinux:2.0.20181114
RUN yum install -y java-1.8.0-openjdk-headless && yum clean all
- Créez une image et vérifiez les versions java et javac (il y a un sentiment anti-pattern, mais entrez avec ssh)
#Créer une image de conteneur Docker
$ docker build -t amazonlinux-jre8 .
(réduction)
#(Pour confirmation) Entrez dans le conteneur avec ssh et vérifiez la version
$ docker run -it amazonlinux-jre8 sh
sh-4.2# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
sh-4.2# javac -version
sh: javac: command not found
- En toute sécurité, la commande java peut être exécutée, et la commande javac n'est (bien sûr) pas installée.
Création d'image de conteneur JDK
- Dockerfile pour JDK
- JDK avec
devel
- Je pense qu'il est souvent utilisé du côté de la construction en plusieurs étapes, mais vérifiez simplement avec l'image de base
Dockerfile
FROM amazonlinux:2.0.20181114
RUN yum install -y java-1.8.0-openjdk-devel && yum clean all
- Créez une image comme avec la version JRE et vérifiez les versions java et javac
#Créer une image de conteneur Docker
$ docker build -t amazonlinux-jdk
(réduction)
#(Pour confirmation) Entrez dans le conteneur avec ssh et vérifiez la version
$ docker run -it amazonlinux-jdk sh
sh-4.2# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
sh-4.2# javac -version
javac 1.8.0_191
- En toute sécurité, les commandes java et javac sont disponibles
Vérifier la taille
- Vous pouvez obtenir la taille de l'image avec la commande
docker images
.
- Différence par rapport à l'amazon linux de base causée par la commande d'ajout de taille de package de JRE, JDK
$ docker images --format "table {{.Repository}}\t{{.Size}}" | grep amazonlinux
amazonlinux 162MB
amazonlinux-jre8 308MB
amazonlinux-jdk 362MB
Résumé
- Lorsque vous utilisez uniquement JRE
java-1.8.0-openjdk-headless
- Lors de l'utilisation de JDK
java-1.8.0-openjdk-devel
- La différence de taille est d'environ 54 Mo. Par conséquent, lors de l'utilisation de JDK, il est plus solide d'utiliser la construction en plusieurs étapes.