Comment créer l'application Docker + Springboot (pour l'apprentissage de base)

introduction

Récemment, je n'ai pas eu l'occasion de créer la source à partir de zéro pour la maintenance et la création de documents, et j'ai tendance à oublier les bases.

À ce moment-là, j'ai regardé cette vidéo.

How to create Docker Image and run Java App (Spring Boot Jar) in a Docker Engine | Tech Primers(2017) https://www.youtube.com/watch?v=FlSup_eelYE

Le contenu de la vidéo est très facile à comprendre, et au fait, je me suis souvenu que je ne l'avais jamais fait à partir de zéro, alors j'ai effectué des travaux de construction pour étudier.

Exigences de construction

Exécutez l'application Springboot sur le conteneur Docker. Rendez-le accessible de l'extérieur avec l'API Rest.

Configuration de DockerDesktop

Autorisez Docker à s'exécuter dans un environnement Windows.

Installateur

Peut être téléchargé à partir de ce fonctionnaire https://hub.docker.com/editions/community/docker-ce-desktop-windows Démarrez [Docker Desktop Installer.exe] et suivez la procédure

Démarrer Docker

Commencez par redémarrer après le programme d'installation

ProxySetUp (si nécessaire)

Ajoutez les proxys suivants au fichier ~ / .docker / config.json.

{
  "credsStore": "desktop",
  "stackOrchestrator": "swarm",
  "credStore": "desktop",
  "proxies":
	 {
	   "default":
	   {
	     "httpProxy": "http://127.0.0.1:3001",
	     "httpsProxy": "http://127.0.0.1:3001",
	     "noProxy": "*.test.example.com,.example2.com"
	   }
	 }
}

<Référence> https://docs.docker.com/network/proxy/

Version initiale de Springboot

○ Créer un projet Spring Boot https://start.spring.io/

Ajout du référentiel de repos à la dépendance pour créer RestAPI.

image.png

Après avoir effectué les réglages, appuyez sur le bouton GÉNÉRER pour télécharger le fichier ZIP.

Placer localement

image.png

Créer un exemple de module pour le repos

Créez un package de contrôleur sous poc.dockerspringboot et créez un exemple de fichier


package poc.dockerspringboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/rest/message/helloWorldOnDocker")
public class HelloWorldOnDocker {

    @GetMapping
    public String hello(){
        return "Hello from Docker Container";
    }
}

Effectuer une construction maven

Effectuer une installation propre mvn image.png

Configuration du fichier Docker

Créer un fichier Docker

Créer un Dockerfile directement sous le projet

image.png

Exemple de création

FROM adoptopenjdk:11-jre-openj9
ADD target/docker-springboot.jar docker-springboot.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "docker-springboot.jar"]

FROM: Spécifiez l'image de base (Java)

Dans OpenJDK, utilisez adoptopenjdk qui peut être utilisé à des fins commerciales. https://hub.docker.com/_/adoptopenjdk

AJOUTER: Ajouter un module

Ajoutez le module généré à Docker. Un module est créé sous target, mais comme le nom de fichier de jar est long, spécifiez le nom de sortie avec [finalName].

<build>
	<finalName>docker-springboot</finalName>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

Référence: informations de configuration de Spring-boot-maven-plugin https://spring.pleiades.io/spring-boot/docs/current/maven-plugin/reference/html/

EXPOSE: Port pour la divulgation externe

Spécifiez le port que vous souhaitez ouvrir dans le conteneur Docker

À l'intérieur du conteneur, le port par défaut au démarrage de spring-boot est 8080 Si vous souhaitez modifier cette valeur, ajoutez server.port = 8082 etc. à application.properties

Au démarrage de Docker, le port démarré en interne et le port ouvert vers l'extérieur sont liés.

ENTRYPOINT: point de départ

Démarrez le module avec la commande jar. En exécutant cette commande, le serveur intégré (Tomcat) démarre et accepte l'accès.

Démarrage du conteneur

#Création d'image
docker build -f Dockerfile -t docker-spring-boot .

#Confirmation de création
docker images

#Démarrage du conteneur
docker run -p 8081:8080 docker-spring-boot


Confirmation d'accès

http://localhost:8081/rest/message/helloWorldOnDocker image.png

enfin

Il n'y a pas de nouvelles découvertes techniques, mais parfois faire ce genre de travail me libère l'esprit. Décrit à titre indicatif pour pouvoir être transféré plus tard

Recommended Posts

Comment créer l'application Docker + Springboot (pour l'apprentissage de base)
Comment créer un environnement Docker avec Gradle pour IntelliJ
Comment créer CloudStack à l'aide de Docker
Comment créer un environnement Rails 6 avec Docker
[Rails] Comment créer un environnement avec Docker
Comment installer Docker
Comment construire android-midi-lib
Comment exécuter l'application SpringBoot en tant que service
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Comment introduire l'authentification de base
Comment définir nginx de Docker
Écrivons comment créer une API avec SpringBoot + Docker à partir de 0
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Express ~
Introduction à la programmation pour les étudiants: comment dessiner des carrés de base
Comment spécifier la validation pour time_field
Comment installer JMeter pour Mac
Pour exécuter JavaFX sur Docker
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ MySQL ~
Articles auxquels il est fait référence pour intégrer Docker
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Sequelize ~
Comment démarrer Camunda avec Docker
[Pour ceux qui créent des portefeuilles] Comment utiliser binding.pry avec Docker
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
Comment créer un environnement pour n'importe quelle version de Ruby en utilisant rbenv
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Comment partager des fichiers avec Docker Toolbox
Comment changer le nom de l'application dans les rails
Comment installer Play Framework 2.6 pour Mac
[Basique] Comment écrire un auto-apprentissage Dockerfile ②
Comment créer un référentiel Maven pour 2020
Comment utiliser Docker dans VSCode DevContainer
Comment créer SquashTM et comment prendre en charge le japonais
[Ruby] Comment utiliser slice pour les débutants
La construction du conteneur Docker ne parvient pas à installer php-radis
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Comprendre en 5 minutes !! Comment utiliser Docker
[SpringBoot] Comment écrire un test de contrôleur
Comment exécuter Blazor (C #) avec Docker
[Pour les débutants] Comment déboguer avec Eclipse
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur
Réflexion sur la façon d'utiliser Ionic-Native, Hybrid et HTML5 pour la production d'applications mobiles
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue ~
[Introduction à Docker] Créer une image Docker pour l'apprentissage automatique et utiliser le notebook Jupyter