Wenn Sie eine Java-Anwendung in ein Docker-Image verwandeln möchten, ist es praktisch, Jib zu verwenden.

Docker mit vielen Vorteilen

Docker ist eine der Containerisierungstechnologien, aber die Verwendung bietet viele Vorteile. Ich werde Docker selbst in diesem Artikel nicht erläutern, da Sie verschiedene tatsächliche Vorteile herausfinden können, indem Sie im Internet suchen. Ich möchte jedoch persönlich betonen, dass es viele Vorteile gibt, wenn Sie Java-Module oder -Archive direkt in der Produktionsumgebung bereitstellen, wenn Sie das Docker-Image in das Repository verschieben. Ich denke du kannst bekommen.

Der Ärger von Docker

Docker hat viele Vorzüge, aber auch einige problematische Aspekte. Ich muss eine Docker-Datei schreiben. Das Erlernen der Befehle und Best Practices für das Schreiben kann problematisch sein. Es ist auch problematisch, eine Docker-Umgebung zu erstellen, wenn die lokale Entwicklungsumgebung Windows ist.

Fock gelöst

Wenn die Anwendung, die auf dem Docker-Container ausgeführt wird, in Java entwickelt wurde, führt die Verwendung von jib, das von Google bereitgestellt wird, zu Problemen im Zusammenhang mit Docker. Wird von veröffentlicht.

Alles was Sie brauchen, um Fock zu verwenden (wenn Sie Gradle verwenden) ist build.gradle

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

Es ist nur die Einstellung.

Und wenn Sie mit dem Bildnamen "Docker-Image-to-Push / 1.0.0" pushen möchten

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

Und setzen Sie es einfach in build.gradle. Führen Sie nun "gradle jib" aus, um ein Docker-Image zu erstellen und es zu verschieben. Das Erstaunliche ist, dass Sie nur dieses Setup benötigen und lokal keine Docker-Umgebung benötigen. Wenn Sie ein Konto bei Docker Hub haben

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

Sie können Jib sofort ausprobieren, indem Sie es auf "build.gradle" setzen. (Ändern Sie die Teile für Konto, Pass und Repository entsprechend Ihrer Umgebung.)

Wie Sie im obigen Beispiel sehen können, erfordert der Ausleger fast keine Einstellungen, kann jedoch auf verschiedene Arten eingestellt werden. Das erste, was Sie festlegen sollen, ist (wenn die Codierung der Java-Quelldatei UTF-8 ist).

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

Es ist eine Einstellung. Ohne dies tritt ein Fehler auf, wenn die Quelldatei Japanisch enthält. Sie können die Einstellungen überprüfen, die über [Konfiguration] vorgenommen werden können (https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin#extended-usage).

Dies ist die Einführung von Fock.

Recommended Posts

Wenn Sie eine Java-Anwendung in ein Docker-Image verwandeln möchten, ist es praktisch, Jib zu verwenden.
[Spring Boot] Wenn Sie Spring Boot verwenden, war es praktisch, viele Dienstprogramme zu verwenden.
JAWJAW ist praktisch, wenn Sie WordNet aus Java verwenden
Delicate ist praktisch, wenn Sie Teile wiederverwenden möchten
[Java] Ich möchte es einfacher machen, weil es schwierig ist, System.out.println einzugeben
Wenn Sie mit Ruby eine Zip-Datei erstellen möchten, ist dies Rubyzip.
So funktioniert @Transactional, das nicht funktioniert, wenn Sie es falsch verwenden
Suchen Sie einen geeigneten Wert für eine Methode und machen Sie sie zu einem ValueObject
Wenn Sie Mockito mit Kotlin verwenden möchten, verwenden Sie Mockito-Kotlin
[# 3 Java] Lesen Sie dies, wenn Sie Java lernen möchten! ~ Sorgfältig ausgewählt ~
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
[Java] Mach es konstant
Wenn Sie eine Methode in RSpec verspotten möchten, sollten Sie die Methode allow für mock und die Singleton-Methode verwenden.
Was tun, wenn in Docker ein gcc-Fehler auftritt?
ProxyFactory ist praktisch, wenn Sie AOP mit Spring testen möchten!
Wenn Sie die Java-Entwicklungsumgebung von Eclipse aus ändern möchten
Erstellen Sie einen C-Compiler zur Verwendung mit Rust x CLion mit Docker
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
So erstellen Sie ein Java-Array
Wenn Sie Oracle JDK 11 ab September verwenden möchten (fügen Sie Amazon Corretto hinzu)
Ich möchte Apache Wicket 8 zusammenfassen, weil es eine gute Idee ist
Shell-Skript, das ein Docker-Image erstellt und an ECR weiterleitet
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
[JPA] Persönliche Memo Die Paging-Verarbeitung ist sehr praktisch, wenn Sie Pageable verwenden
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich möchte eine Webanwendung entwickeln!
So erstellen Sie eine Java-Kalenderzusammenfassung
Wie erstelle ich einen Discord Bot (Java)
[Java] Anfänger wollen Dating machen. 1
Ist es ein Verlust, wenn Sie es nicht wissen? Rails [Super] 5 Auswahlen, um Fehler zu finden, um Anfängern zu entkommen
Lassen Sie uns eine TODO-Anwendung mit Java 2 erstellen. Ich möchte eine Vorlage mit Spring Initializr erstellen und eine Hello-Welt erstellen
Ich wollte eine Diashow des Hintergrundbilds erstellen, da das Bild des Sperrbildschirms von Windows 10 wunderschön ist
So erstellen Sie ein kleines Docker-Image der openjdk 11 (ea) -Anwendung (1 GB → 85 MB)
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
Von der Bewerbung bis zur Einführung von Oracle Java SE 11 Silver dauerte es einen Monat
[Java] Warum verwenden Sie die Benutzeroberfläche (Spring ist ebenfalls verfügbar)?
Ich möchte, dass Sie Scala vorerst als besseres Java verwenden
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch
[Java] Wenn Sie eine Zeichenfolge in die switch-Anweisung einfügen, müssen Sie sie zu einem konstanten Ausdruck machen
Auch wenn ich den Inhalt eines Datenobjekts in Java in JSON konvertieren möchte, gibt es einen Zirkelverweis ...
[Swift] Wenn die Anwendung iOS 11 oder höher unterstützt, war es nicht erforderlich, Int und Int64 ordnungsgemäß zu verwenden
[Lösung] Was tun, wenn ein Docker-Fehler angezeigt wird? FEHLER: Unter Unix: ///var/run/docker.sock kann keine Verbindung zum Docker-Dämon hergestellt werden. Wird der Docker-Dämon ausgeführt?
Wenn Sie Datenbankspalten usw. ändern möchten.
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
So verkleinern Sie das Spring Boot Docker-Image
Ich möchte Java8 für jeden mit Index verwenden
Ein Hinweis, wenn Sie Tupel in Java möchten
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen