[JAVA] Comment mettre à jour un fichier prédéfini dans un conteneur Docker

introduction

C'est le contenu de l'enquête sur la façon de mettre à jour le fichier exécutable spécifié comme point d'entrée dans le conteneur docker.

Contexte / problèmes

Lors du développement d'une application Web avec Java ou kotlin, je pense qu'il est courant de configurer un conteneur docker pour le développement. Vous trouverez ci-dessous une partie du Dockerfile pour le conteneur de niveau application.

FROM openjdk:8-jdk-alpine
COPY build/libs/application.jar application.jar
ENTRYPOINT  ["java", "-jar", "application.jar"]

Voici ce que nous faisons dans le fichier: Ligne 1: spécifiez l'image de base 2ème ligne: Copiez le fichier jar pré-construit (fichier d'exécution) du côté hôte (gauche) vers le côté conteneur (droite) Ligne 3: Configurez le processus de démarrage du conteneur (exécutez le fichier jar que vous avez passé ci-dessus)

L'application s'exécute au démarrage du processus d'exécution de la commande spécifiée au dernier point d'entrée. Pendant le développement, le programme est reconstruit pour chaque modification, mais le résultat de la reconstruction doit être reflété dans le conteneur afin de voir les modifications sur l'application réelle. Une méthode simple consiste à arrêter le conteneur créé, à le supprimer, puis à reconstruire / démarrer le conteneur, mais cela prendra un certain temps (en particulier la reconstruction du conteneur).

Solution

L'une des solutions au problème ci-dessus est la suivante.

Solution

  1. Remplacez l'ancien fichier jar du conteneur par le nouveau fichier (application-new.jar) du conteneur en cours d'exécution.
docker cp build/libs/application-new.jar application.jar
  1. Redémarrez le conteneur (nom du conteneur: app).
docker restart app

Cette méthode ne nécessite pas la reconstruction du conteneur, de sorte que le conteneur peut être mis à jour plus rapidement.

référence

Recommended Posts

Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment partager des fichiers avec Docker Toolbox
Comment utiliser Docker dans VSCode DevContainer
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
Comprendre en 5 minutes !! Comment utiliser Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
Copier les fichiers du conteneur Docker vers l'hôte (docker cp)
Comment installer Docker
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
Comment entrer / sortir des fichiers mainframe IBM en Java?
Comment supprimer des images non balisées en masse avec Docker
Comment gérer les fichiers TSV et les fichiers CSV dans Ruby
Comment mettre en évidence la syntaxe d'un fichier comme Dockerfile.production avec Pycharm
Comment lancer Swagger UI et Swagger Editor dans Docker
Comment définir nginx de Docker
Comment mettre à jour avec activerecord-import
Comment restaurer le fichier de migration
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:
Comment utiliser Lombok au printemps
Comment trouver May'n dans XPath
Introduction à Linux Container / Docker (Partie 1)
Comment masquer la barre de défilement dans WebView
Comment exécuter JUnit dans Eclipse
Comment itérer indéfiniment en Ruby
Comment exécuter Ant dans Gradle
Comment créer un conteneur Java
Comment maîtriser la programmation en 3 mois
Comment désassembler un fichier de classe Java
Pour exécuter JavaFX sur Docker
Comment apprendre JAVA en 7 jours
Comment obtenir des paramètres dans Spark
Comment installer Bootstrap dans Ruby
Introduction à Linux Container / Docker (Partie 2)
Comment décompiler un fichier de classe Java
Comment utiliser InjectorHolder dans OpenAM
Comment installer jQuery dans Rails 6
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Comment définir Lombok dans Eclipse
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Comment créer CloudStack à l'aide de Docker
Comment démarrer Camunda avec Docker
Comment concaténer des chaînes avec Java
Comment installer Swiper in Rails
[swift5] Comment spécifier la couleur en hexadécimal
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment utiliser binding.pry pour afficher le fichier
Docker push vers GitHub Container Registry (ghcr.io)
Comment changer le nom de l'application dans les rails