Créer une image docker pour exécuter une application Java simple

Choses à faire

Pour comprendre Docker, créons et exécutons une image docker d'une application très simple. Plus précisément, exécutez une application qui affiche «Hello world!» Une fois par seconde. Essayez de tout faire, de la construction à l'exécution sur le conteneur.

Le code source Java est le suivant. https://github.com/nannany/very-simple-application

environnement

Exécuté sur Windows10 HOME. J'ai utilisé Docker Toolbox pour créer l'environnement d'exploitation de Docker sous Windows. Consultez l'article suivant pour plus de détails. https://qiita.com/idani/items/fb7681d79eeb48c05144

Flux de création d'une image Docker

Ecrire Dockerfile → Exécuter la commande de construction docker L'image du docker est créée avec.

Le déroulement approximatif de la création d'une image docker ressemble à la figure ci-dessous. En tant que personnage à connaître

Décidez du chemin à ajouter au contexte de construction lors de l'exécution de la commande de construction docker. À ce stade, décrivez les fichiers que vous ne souhaitez pas apporter au contexte de construction dans le fichier .dockerignore.

Utilisez également la commande COPY dans le Dockerfile pour décider ce qu'il faut apporter à l'image dans le contexte de construction.

ビルドコンテキスト.jpg

Dockerfile à utiliser

Dans l'ensemble, c'est comme suit.

FROM ubuntu:disco

COPY . .
RUN apt-get update && apt-get install -y \
    maven \
    openjdk-8-jre \
 && cd simple \
 && mvn package
CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Tout d'abord, écrivez FROM pour sélectionner l'image de base. Ici, sélectionnez ʻubuntu: disco` selon le cas.

Ensuite, écrivez COPY .. pour copier le fichier du contexte de construction vers l'image.

Ensuite, installez les packages (maven et openjdk) requis pour générer la source et exécuter Java, puis exécutez la commande de création maven jar.

RUN apt-get update && apt-get install -y \
    maven \
    openjdk-8-jre \
 && cd simple \
 && mvn package

J'ai imité ce qui suit et j'étais conscient de minimiser le nombre de couches et de faire la mise à jour et l'installation d'apt-get en même temps. http://docs.docker.jp/engine/articles/dockerfile_best-practice.html

Enfin, j'ai écrit ce qui suit pour que java -jar simple / target / simple-1.0-SNAPSHOT.jar soit exécuté après le démarrage du conteneur.

CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Commande Docker à exécuter au moment de la construction

La commande docker à exécuter lors de la création d'une image est

docker build -t simple-application -f Dockerfile.cmd .

Dans -t simple-application, le nom de l'image est simple-application. Dans -f Dockerfile.cmd, le Dockerfile utilisé lors de la création de l'image est Dockerfile.cmd dans le chemin où la commande ci-dessus est exécutée. (Par défaut, le Dockerfile dans le chemin où la commande est exécutée est sélectionné) Le . final signifie que le chemin sous lequel la commande est exécutée sera ajouté au contexte de construction.

bouge toi

Essayez d'exécuter l'image créée ci-dessus avec la commande suivante.

docker run simple-application-cmd

Il a été affiché comme ci-dessous et cela a fonctionné.

hello.gif

Image avec maven

Ci-dessus, j'ai spécifié ʻubuntu: disco` comme image de base et installé maven et Java sur l'image avec RUN. Cependant, comme il existe une image de base qui contient à l'origine maven et Java, le Dockerfile qui l'utilise est le suivant. (Je l'ai sauté parce que j'ai eu une erreur dans le test pour une raison quelconque)

FROM maven:3-jdk-8

COPY . .
RUN cd simple && mvn package -Dmaven.test.skip=true
CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Recommended Posts

Créer une image docker pour exécuter une application Java simple
Création d'un environnement Java léger qui s'exécute sur Docker
Docker x Java Construire un environnement de développement trop simple
Créer une application TODO dans Java 7 Créer un en-tête
Manuel Docker Compact (4: Créer une image personnalisée)
Consolidez les applications JavaFX dans des fichiers jar qui fonctionnent à la fois sur Java 8/11
Créez une application de recherche simple avec Spring Boot
Créez un tableau d'affichage simple avec Java + MySQL
Application Java CICS-Run - (1) Exécutez un exemple d'application simple
[Java] Créer un filtre
Entraînez-vous à créer une application de chat simple avec Docker + Sinatra
[Note] Créez un environnement Java à partir de zéro avec docker
J'ai essayé d'utiliser Wercker pour créer et publier une image Docker qui lance GlassFish 5
Créer une méthode java [Memo] [java11]
[Java] Créer un fichier temporaire
[Java] Dessine un motif simple
Comment créer une image de conteneur légère pour les applications Java
Créez une image Docker avec le JDK Oracle installé (miam
Comment déployer une application Java Servlet simple sur Heroku
[Débutant] Application Android qui fait rouler des balles à l'aide de capteurs [Java]
Créez un serveur Web simple avec la bibliothèque standard Java com.sun.net.httpserver
Créez un environnement Vue3 avec Docker!
J'ai essayé de créer une application cartographique simple dans Android Studio
3 Implémentez un interpréteur simple en Java
J'ai créé une application shopify @java
Créer une nouvelle application avec Rails
Créer un projet Java à l'aide d'Eclipse
J'ai créé un exemple d'application Selenium qui prend en charge plusieurs navigateurs (Chrome, IE, Firefox) qui s'exécute sur Java.
Un exemple simple de rappels en Java
2. Créez une image Docker et enregistrez le registre
Essayez de créer une application client serveur
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
Créez une image Docker pour redoc-cli et enregistrez-la sur Docker Hub
Une application Java autonome qui envoie des journaux à CloudWatch Logs avec slf4j / logback
Clonez votre propre application Web sur GitLab lors de la création d'une image Docker
Script Shell qui construit une image Docker et la pousse vers ECR
Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
[Java] Créer et appliquer un masque des diapositives
Créez rapidement un environnement Web à l'aide de Docker
[Rails6] Créer une nouvelle application avec Rails [Débutant]
Créez une application Web simple avec Dropwizard
Créez un lot à la demande simple avec Spring Batch
[Retrait des rails] Créez une fonction de retrait simple avec des rails
Créons un environnement de développement Java (mise à jour)
Créer un graphique à barres simple avec MPAndroidChart
[docker] [nginx] Créer un ALB simple avec nginx
Créons une application de calcul avec Java
Déployer des applications Web Java sur Heroku
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
Créer une liste qui contient plusieurs classes
Installez Docker et créez un environnement d'exécution Java