Java alkalmazások dokkolása a Jib segítségével

1. Áttekintés

Ebben az oktatóanyagban megnézzük a Jib-et és hogyan egyszerűsíti a Java-alkalmazások tárolását.

Fogunk egy egyszerű Spring Boot alkalmazást, és elkészítjük a Docker képét a Jib segítségével. És akkor közzétesszük a képet egy távoli nyilvántartásban is.

És feltétlenül olvassa el a Spring Boot alkalmazások dokkolásával kapcsolatos oktatóanyagunkat is dockerfile és docker eszköz.

2. Bevezetés a Jib-be

Orrvitorla egy nyílt forráskódú Java eszköz, amelyet a Google fenntart a Java alkalmazások Docker képeinek felépítéséhez. Leegyszerűsíti a konténerbe szállítást, mivel vele együtt nem kell írnunk a dockerfile.

És valójában nem is kell dokkmunkás telepítve hogy mi magunk hozzuk létre és tegyük közzé a dokkoló képeket.

A Google közzéteszi a Jibet Maven és Gradle beépülő modulként egyaránt. Ez azért szép, mert ez azt jelenti, hogy a Jib minden építkezéskor észreveszi az alkalmazásunkon végrehajtott változtatásokat. Ez külön dokkoló build / push parancsokat takarít meg nekünk, és egyszerűbbé teszi ezek hozzáadását egy CI-folyamathoz.

Van még néhány más eszköz is, például a Spotify docker-maven-plugin és dockerfile-maven pluginjei, bár az előbbi már elavult, az utóbbi pedig egy dockerfile.

3. Egy egyszerű üdvözlő alkalmazás

Vegyünk egy egyszerű tavaszi indító alkalmazást, és dokkoljuk a Jib segítségével. Ez egy egyszerű GET végpontot tesz közzé:

// localhost: 8080 / üdvözlet

Amit egyszerűen elvégezhetünk egy Spring MVC vezérlővel:

@RestController public class GreetingController {private static final String template = "Hello Docker,% s!"; privát végleges AtomicLong számláló = új AtomicLong (); @GetMapping ("/ greeting") public Greeting greeting (@RequestParam (value = "name", defaultValue = "World") String name) {return new Greeting (counter.incrementAndGet (), String.format (template, name)) ; }} 

4. A telepítés előkészítése

Helyileg is be kell állítanunk magunkat, hogy hitelesítsük a telepíteni kívánt Docker-lerakatban.

Ennél a példánál fogjuk nyújtsa be a DockerHub hitelesítő adatainkat .m2 / settings.xml:

  register.hub.docker.com 

A hitelesítő adatok megadásának más módjai is vannak. A Google által javasolt módszer a segítő eszközök használata, amelyek titkosított formátumban tárolhatják a hitelesítő adatokat a fájlrendszerben. Ebben a példában használhattunk volna dokkoló-hitelesítő segédeket ahelyett, hogy egyszerű szöveges hitelesítő adatokat tárolna a settings.xml, ami sokkal biztonságosabb, bár egyszerűen nem tartozik az oktatóanyag körébe.

5. Telepítés a Docker Hubba a Jib segítségével

Most már használhatjuk jib-maven-plugin, vagy a Gradle megfelelője, nak nektárolja az alkalmazásunkat egy egyszerű paranccsal:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.5.0:build -Dimage = $ IMAGE_PATH

ahol az IMAGE_PATH a céltároló a tároló-nyilvántartásban.

Például a kép feltöltéséhez baeldungjib / spring-jib-app nak nek DockerHub, tennénk:

export IMAGE_PATH = register.hub.docker.com / baeldungjib / spring-jib-app

És ez az! Ez felépíti alkalmazásunk dokkoló képét, és a DockerHub.

Természetesenhasonló módon töltse fel a képet a Google Container Registry vagy az Amazon Elastic Container Registry alkalmazásba.

6. A Maven parancs egyszerűsítése

Rövidíthetjük a kezdeti parancsunkat a plugin konfigurálásával pom ehelyett, mint bármely más maven plugin.

 ... ... com.google.cloud.tools jib-maven-plugin 2.5.0 $ {image.path} ... ... 

Ezzel a változtatással egyszerűsíthetjük a maven parancsunkat:

mvn compile jib: build

7. A Docker-szempontok testreszabása

Alapértelmezés szerint, Jib számos ésszerű találgatást tesz arra, hogy mit akarunk, mint a FROM és az ENTRYPOINT.

Végezzünk el néhány változtatást az alkalmazásunkban, amelyek jobban megfelelnek az igényeinknek.

Először a Spring Boot alapértelmezés szerint kiteszi a 8080-as portot.

De tegyük fel, hogy az alkalmazásunkat a 8082-es porton akarjuk futtatni, és tárolón keresztül teszik elérhetővé.

Természetesen a Boot-ban elvégezzük a megfelelő változtatásokat. Ezután pedig a Jib-et használhatjuk, hogy a képen láthatóvá tegyük:

 ...   8082   

Vagy tegyük fel, hogy más FROM-ra van szükségünk. Alapértelmezés szerint Jib a terjesztés nélküli java képet használja.

Ha egy másik alapképen szeretnénk futtatni az alkalmazásunkat, mint például az alpine-java, akkor hasonló módon konfigurálhatjuk:

 ... openjdk: alpesi ... 

Ugyanígy konfiguráljuk a címkéket, a köteteket és számos más Docker-irányelvet.

8. Java szempontok testreszabása

Egyesüléssel a Jib számos Java futásidejű konfigurációt is támogat:

  • jvmFlags arra szolgál, hogy jelezze, milyen indítási zászlókat adjon át a JVM-nek.
  • mainClass a fő osztály megjelölésére szolgál, amely Jib alapértelmezés szerint megpróbálja automatikusan következtetni.
  • érvel itt adhatjuk meg a programnak átadott program argumentumokat fő- módszer.

Természetesen ellenőrizze a Jib dokumentációját, hogy megtekinthesse az összes rendelkezésre álló konfigurációs tulajdonságot.

9. Következtetés

Ebben az oktatóanyagban azt láthattuk, hogyan lehet dokkoló képeket készíteni és közzétenni a Google Jib segítségével, többek között arról, hogyan lehet hozzáférni a dokkoló irányelvekhez és a Java futásidejű konfigurációkhoz a Mavenen keresztül.

Mint mindig, ennek a példának a forráskódja elérhető a Githubon.


$config[zx-auto] not found$config[zx-overlay] not found