Verwandeln Sie Java-Anwendungen mit Jib ganz einfach in Docker

Jib wurde am 11. Juli 2018 von Google veröffentlicht. Jib ist ein OSS, das Java-Anwendungen automatisch in Docker-Container umwandelt. Es wird als Plug-In für Maven und Gradle veröffentlicht, und Sie können es einfach verwenden, indem Sie Jib einfach als Plug-In registrieren. Außerdem müssen Sie selbst keine Docker-Datei schreiben, und Jib erstellt das Bild automatisch für Sie. Bisher habe ich Dockerfile und docker-compose.yml geschrieben, um das Image zu erstellen, aber es ist sehr einfach, da das Image automatisch erstellt werden kann, indem es einfach mit mvn oder gradle erstellt wird. In diesem Artikel werde ich die Spring-Anwendung (Hello World) vom Docker in die Anwendung einführen, indem ich sie mit dem Maven-Projekt erstelle.

Maven-Projekterstellung

Erstellen Sie zunächst eine Frühlingsvorlage mit SPRING INITIALIZR.

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example.jib</groupId>
	<artifactId>jibDemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>jibDemo</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

Fügen Sie als Nächstes die Fock-Einstellungen hinzu.

<!-- Jib -->
<plugin>
	<groupId>com.google.cloud.tools</groupId>
	<artifactId>jib-maven-plugin</artifactId>
	<version>0.9.6</version>
	<configuration>
		<to>
			<image>hellojib</image>
		</to>
	</configuration>
</plugin>

Fügen Sie das Jib-Plug-In zum Build-Teil hinzu.

Sie müssen lediglich mit Eclipse oder Intellij importieren.

Java-Anwendung

Auf der Anwendungsseite diesmal nur Hello World

HelloController


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping("/")
    public String sayHello(Model model) {
        model.addAttribute("message", "Hello World!!!");

        return "index";
    }
}

index.html


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Hello Spring</title>
</head>
<body>
<span th:text="${message}">Hello world</span>
</body>
</html>

Docker Image Build Erstellen Sie ein Docker-Image in Jib

$ mvn compile jib:build

Bei Erfolg wird ein Docker-Image generiert.


$ docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
hellojib                                        latest              16ab4943a4d8        48 years ago        138MB

Der Docker-Image-Name kann in der Konfiguration in pom.xml festgelegt werden. Dieses Mal ist Hallojib im Bild gesetzt.

<configuration>
	<to>
		<image>hellojib</image>
	</to>
</configuration>

Danach können Sie eine Java-Anwendung mit Docker wie "Docker ausführen --name hellojib -d -p 8080: 8080 hellojibD" starten.

Recommended Posts

Verwandeln Sie Java-Anwendungen mit Jib ganz einfach in Docker
Installieren Sie Java mit Ubuntu 16.04 Docker
Überwachen Sie Java-Anwendungen mit Jolokia und Hawtio
CICS-Java-Anwendung ausführen- (3) Build-Management mit Gradle
CICS-Java-Anwendung ausführen- (2) Build-Management mit Maven
Erstellen Sie Java-Anwendungen mit IBM Cloud-Funktionen
Verwandeln Sie Java-Apps mit Jib ~ Build with gradle ganz einfach in Docker-Container und registrieren Sie sich im lokalen Repository
/ n \ n Docker Java
[Memo] Erstellen Sie mit Docker ganz einfach eine CentOS 8-Umgebung
Machen Sie die SpringBoot1.5 + Gradle4.4 + Java8 + Docker-Umgebung mit Java11 kompatibel
Wechseln Sie einfach die Java-Versionen mit Alias unter macOS
Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Docker Container Operations mit Docker-Client API für Java
CI die Architektur von Java / Kotlin-Anwendungen mit ArchUnit
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Starten Sie MariaDB mit Docker
Explodiere Docker mit WSL2
Verwenden Sie Puphpeteer mit Docker
Bequemer Download mit JAVA
Schalten Sie Java mit direnv
Bedienen Sie Emby mit Docker
Führen Sie Payara mit Docker aus
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Java-Download mit Ansible
Versuchen Sie, mit Java eine Verbindung zu AzureCosmosDB Emulator for Docker herzustellen
Java 10 Docker-Unterstützung
Lass uns mit Java kratzen! !!
Erstellen Sie Java mit Wercker
Einweg-PHP mit Docker
Endian-Konvertierung mit JAVA
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit
[Java] Beispielprojekt zum Entwickeln von Webanwendungen mit Spring Boot
(Java) Einfache BDD mit Spektrum?
Verwenden Sie Lambda-Ebenen mit Java
Erstellen Sie mit Gradle ein Java-Multiprojekt
Erste Schritte mit Java Collection
Verwenden Sie GDAL mit Python mit Docker
Java-Konfiguration mit Spring MVC
Grundlegende Authentifizierung mit Java 11 HttpClient
Experimentieren wir mit der Java-Inline-Erweiterung
Führen Sie Batch mit Docker-Compose mit Java-Batch aus
[Vorlage] MySQL-Verbindung mit Java
Schreiben Sie Java Try-Catch mit Optional neu
Installieren Sie Java 7 mit Homebrew (Fass)
[Java] JSON-Kommunikation mit Jackson
Bereitstellung mit EC2 / Docker / Laravel
Führen Sie TAO Core mit Docker aus
Java zum Spielen mit Function