Le contenu de cet article concerne la méthode et le processus de création d'une image Docker avec le programme Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Voici quelques exigences pour la production d'images Docker, puis nous verrons comment le faire.
Le processus de production doit être intégré au processus de construction du projet
Utiliser l'image officielle comme image de base
Définir le fuseau horaire correct
Le programme dans le conteneur est démarré en tant qu'utilisateur non root
Spécifiez l'interface du programme Web
Capable de transmettre les paramètres JVM, les propriétés du système Java et les paramètres définis par le programme
Parlons de la façon de faire le ci-dessus en détail :
Il est recommandé d'utiliser le dockerfile-maven-plugin de Spotify car ce plugin est le plus simple à utiliser et facile à maîtriser .
L'essence de ce plugin est que vous écrivez un Dockerfile (veuillez vous référer à la documentation officielle pour la méthode d'écriture spécifique de Dockerfile. Ce plugin transmet certains paramètres pour vous aider à créer une image Docker).
Donc, tant que vous pouvez écrire Dockerfile, vous utiliserez ce plugin. Il n'ajoute aucun concept supplémentaire.
L'image de base de Java doit être trouvée dans le référentiel openjdk, pas dans le référentiel Java obsolète.
Le référentiel openjdk fournit une variété de balises d'image qui peuvent sembler éblouissantes, mais il n'y en a essentiellement que quelques-unes :
openjdk:<version>
openjdk:<version>-slim
openjdk:<version>-alpine
Concernant <version>
, d'une manière générale, spécifiez simplement un numéro de version plus grand. Par exemple, vous pouvez écrire ceci dans le Dockerfile :
FROM openjdk:8-alpine
En termes de taille, alpine est le plus petit, slim est légèrement plus grand et la valeur par défaut. est le plus grand. Par conséquent, vous devez utiliser la version alpine autant que possible. Si vous constatez que l'environnement d'exécution du programme manque de quelque chose, essayez d'utiliser la version slim ou la version par défaut. En termes d'expérience actuelle :
Si vous avez besoin de la bibliothèque de polices du système d'exploitation, vous devez utiliser la version slim ou la version par défaut. Programmes nécessitant des bibliothèques de polices du système d'exploitation telles que les codes de vérification d'image et l'exportation PDF.
Si vous avez besoin de bibliothèques de liens dynamiques/statiques standard Linux, alors si la version alpine ne fonctionne pas, essayez la version slim ou la version par défaut. Parce que la version alpine est un Linux extrêmement simplifié, elle supprime beaucoup de choses.
Le fuseau horaire de presque toutes les images Docker est UTC. Nous devons définir le fuseau horaire de l'image Docker que nous avons créée :
ENV TZ=Asia/Shanghai RUN set -eux; \ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \ echo $TZ > /etc/timezone
EXPOSE 8080
: /home/java-app/
/home/java-app ├── docker-entrypoint.sh ├── lib │ └── java-app.jar ├── etc ├── logs └── tmp
mvn clean package dockerfile:build
: http://localhost:8080
docker run -p 8080:8080 chanjarster/dockerfile-java-examples-1:1.0-SNAPSHOT
variables d'environnement : JVM_OPTS
docker run -p 8080:8080 -e JVM_OPTS='-Xmx128M -Xms128M' chanjarster/dockerfile-java-examples-1:1.0-SNAPSHOT
variables d'environnement : JAVA_ARGS
docker run -p 8080:8080 -e JAVA_ARGS='-Dabc=xyz -Ddef=uvw' chanjarster/dockerfile-java-examples-1:1.0-SNAPSHOT
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!