Si vous souhaitez transformer une application Java en une image Docker, il est pratique d'utiliser jib.

Docker avec de nombreux avantages

Docker est l'une des technologies de conteneurisation, mais son utilisation présente de nombreux avantages. Je n'expliquerai pas Docker lui-même dans cet article car divers mérites peuvent être trouvés en recherchant sur le net. Cependant, je voudrais souligner personnellement que si vous déployez, par exemple, en plaçant des modules Java et des archives directement dans l'environnement de production, il y a de nombreux avantages à passer au travail de poussée de l'image Docker vers le référentiel. Je pense que vous pouvez obtenir.

Les tracas de Docker

Docker a de nombreux avantages, mais il présente également des aspects gênants. Je dois écrire un Dockerfile. L'apprentissage des commandes et des meilleures pratiques d'écriture peut être un problème. Il est également difficile de créer un environnement Docker lorsque l'environnement de développement local est Windows.

jib résolu

Si l'application qui s'exécute sur le conteneur Docker est développée en Java, l'utilisation de jib fourni par Google entraînera des problèmes liés à Docker. Sera libéré de.

Tout ce dont vous avez besoin pour utiliser jib (si vous utilisez gradle) est build.gradle

plugins {
  id 'com.google.cloud.tools.jib' version '2.1.0'
}

Ce n'est que le cadre.

Et si vous voulez pousser avec le nom de l'image docker-image-to-push / 1.0.0

jib.to.image = 'docker-image-to-push/1.0.0'

Et mettez-le simplement dans build.gradle. Maintenant, lancez gradle jib pour créer une image Docker et la pousser. Ce qui est étonnant, c'est que vous n'avez besoin que de cette configuration et que vous n'avez pas besoin d'un environnement Docker localement. Si vous avez un compte sur Docker Hub

jib.to {
  auth {
    username 'account'
    password 'pass'
  }
  image 'account/repository:1.0.0'
}

Vous pouvez essayer jib immédiatement en le réglant sur build.gradle comme. (Modifiez les parties compte, passe et référentiel en fonction de votre environnement.)

Comme vous pouvez le voir dans l'exemple ci-dessus, c'est une flèche qui ne nécessite presque aucun réglage, mais elle peut être réglée de différentes manières. La première chose que je veux que vous définissiez est (lorsque l'encodage du fichier source Java est UTF-8)

jib.container.environment = [JAVA_TOOL_OPTIONS: '-Dfile.encoding=UTF-8']

C'est un décor. Sans cela, une erreur se produira s'il y a du japonais dans le fichier source. Vous pouvez vérifier les paramètres qui peuvent être définis à partir de configuration.

C'est l'introduction de la flèche.

Recommended Posts

Si vous souhaitez transformer une application Java en une image Docker, il est pratique d'utiliser jib.
[Spring Boot] Si vous utilisez Spring Boot, il était pratique d'utiliser de nombreux utilitaires.
JAWJAW est pratique si vous utilisez WordNet à partir de Java
Delicate est pratique à utiliser lorsque vous souhaitez réutiliser des pièces
[Java] Je veux faciliter les choses car il est difficile d'entrer System.out.println
Si vous voulez créer un fichier zip avec Ruby, c'est rubyzip.
Comment faire fonctionner @Transactional qui ne fonctionne pas si vous ne l'utilisez pas correctement
Trouvez une valeur pratique pour avoir une méthode et en faire un ValueObject
Si vous souhaitez utiliser Mockito avec Kotlin, utilisez mockito-kotlin
[# 3 Java] Lisez ceci si vous voulez étudier Java! ~ Sélectionné avec soin ~
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
[Java] Rendez-le constant
Si vous souhaitez simuler une méthode dans RSpec, vous devez utiliser la méthode allow pour mock et la méthode singleton.
Que faire si vous obtenez une erreur gcc dans Docker
ProxyFactory est pratique lorsque vous souhaitez tester AOP avec Spring!
Si vous souhaitez modifier l'environnement de développement Java d'Eclipse
Créer un compilateur C à utiliser avec Rust x CLion avec Docker
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
Comment créer un tableau Java
Si vous souhaitez utiliser Oracle JDK 11 à partir de septembre (ajoutez Amazon Corretto)
Je voudrais résumer Apache Wicket 8 car c'est une bonne idée
Script Shell qui construit une image Docker et la pousse vers ECR
Mémo: [Java] Si un fichier se trouve dans le répertoire surveillé, traitez-le.
[JPA] Mémo personnel Le traitement de la pagination est très pratique si vous utilisez Pageable
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
Je souhaite développer une application web!
Comment créer un résumé de calendrier Java
Comment créer un robot Discord (Java)
[Java] Les débutants veulent faire des rencontres. 1er
Est-ce une perte si vous ne savez pas? Rails [Super] 5 sélections pour trouver des erreurs d'erreur pour échapper aux débutants
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
Je voulais faire un diaporama du fond d'écran car l'image de l'écran de verrouillage de Windows 10 est magnifique
Comment créer une petite image docker de l'application openjdk 11 (EA) (1 Go → 85 Mo)
J'ai créé une application d'apprentissage automatique avec Dash (+ Docker) part3 ~ Practice ~
Il a fallu un mois entre l'application et la prise de l'Oracle Java SE 11 Silver
[Java] Pourquoi vous embêtez-vous à utiliser l'interface (Spring est également disponible)
Je veux que vous utilisiez Scala comme meilleur Java pour le moment
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
[Introduction à Docker] Créer une image Docker pour l'apprentissage automatique et utiliser le notebook Jupyter
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
Même si je souhaite convertir le contenu d'un objet de données en JSON en Java, il existe une référence circulaire ...
[Swift] Si le support de l'application est iOS 11 ou version ultérieure, il n'était pas nécessaire d'utiliser correctement Int et Int64
[Solution] Que faire si vous obtenez une erreur Docker "ERREUR: Impossible de se connecter au démon Docker sous unix: ///var/run/docker.sock. Le démon docker est-il en cours d'exécution?"
Si vous souhaitez modifier les colonnes de la base de données, etc.
Connectez-vous à Aurora (MySQL) depuis une application Java
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
Comment réduire l'image de Spring Boot Docker
Je veux utiliser java8 forEach avec index
Une note quand vous voulez Tuple en Java
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java