Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen

Dinge die zu tun sind

Um Docker zu verstehen, erstellen wir ein Docker-Image einer sehr einfachen Anwendung und führen es aus. Führen Sie insbesondere eine Anwendung aus, die einmal pro Sekunde "Hallo Welt!" Ausgibt. Ziel ist es, alles vom Build bis zur Ausführung des Containers zu erledigen.

Der Java-Quellcode lautet wie folgt. https://github.com/nannany/very-simple-application

Umgebung

Wird unter Windows 10 HOME ausgeführt. Ich habe Docker Toolbox verwendet, um die Betriebsumgebung für Docker unter Windows zu erstellen. Weitere Informationen finden Sie im folgenden Artikel. https://qiita.com/idani/items/fb7681d79eeb48c05144

Ablauf beim Erstellen eines Docker-Images

Docker-Datei schreiben → Docker-Build-Befehl ausführen Das Docker-Image wird mit erstellt.

Der grobe Ablauf beim Erstellen eines Docker-Bilds sieht wie in der folgenden Abbildung aus. Als Charakter zu beachten

Entscheiden Sie, welcher Pfad dem Build-Kontext hinzugefügt werden soll, wenn Sie den Docker-Build-Befehl ausführen. Beschreiben Sie zu diesem Zeitpunkt die Dateien, die Sie nicht in den Build-Kontext bringen möchten, in der Datei ".dockerignore".

Verwenden Sie außerdem den Befehl COPY in der Docker-Datei, um zu entscheiden, was im Build-Kontext zum Image hinzugefügt werden soll.

ビルドコンテキスト.jpg

Dockerfile zu verwenden

Insgesamt ist es wie folgt.

FROM ubuntu:disco

COPY . .
RUN apt-get update && apt-get install -y \
    maven \
    openjdk-8-jre \
 && cd simple \
 && mvn package
CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Schreiben Sie zuerst "FROM", um das Basisbild auszuwählen. Wählen Sie hier "Ubuntu: Disco".

Schreiben Sie dann "COPY ..", um die Datei aus dem Build-Kontext in das Image zu kopieren.

Installieren Sie als Nächstes die Pakete (maven und openjdk), die zum Erstellen der Quelle und zum Ausführen von Java erforderlich sind, und führen Sie den Befehl zum Erstellen von maven jar aus.

RUN apt-get update && apt-get install -y \
    maven \
    openjdk-8-jre \
 && cd simple \
 && mvn package

Die Art zu schreiben besteht darin, Folgendes nachzuahmen, und ich war mir bewusst, die Anzahl der Ebenen zu minimieren und gleichzeitig apt-get update und install durchzuführen. http://docs.docker.jp/engine/articles/dockerfile_best-practice.html

Schließlich habe ich Folgendes geschrieben, damit "java -jar simple / target / simple-1.0-SNAPSHOT.jar" ausgeführt wird, nachdem der Container gestartet wurde.

CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Docker-Befehl, der zur Erstellungszeit ausgeführt werden soll

Der Docker-Befehl, der beim Erstellen eines Images ausgeführt werden soll, lautet

docker build -t simple-application -f Dockerfile.cmd .

In -t simple-application lautet der Name des Bildes simple-application. In -f Dockerfile.cmd ist die Dockerfile, die beim Erstellen des Bildes verwendet wird, Dockerfile.cmd in dem Pfad, in dem der obige Befehl ausgeführt wird. (Standardmäßig ist die Docker-Datei in dem Pfad ausgewählt, in dem der Befehl ausgeführt wird.) Das letzte . bedeutet, dass der Pfad, unter dem der Befehl ausgeführt wird, zum Build-Kontext hinzugefügt wird.

Bewegung

Versuchen Sie, das oben erstellte Image mit dem folgenden Befehl auszuführen.

docker run simple-application-cmd

Es wurde wie folgt angezeigt und es hat funktioniert.

hello.gif

Bild mit Maven

Oben habe ich "ubuntu: disco" als Basis-Image angegeben und Maven und Java mit RUN auf dem Image installiert. Da es jedoch ein Basis-Image gibt, das ursprünglich Maven und Java enthält, lautet die Docker-Datei, die es verwendet, wie folgt. (Ich habe es übersprungen, weil ich aus irgendeinem Grund einen Fehler im Test bekommen habe)

FROM maven:3-jdk-8

COPY . .
RUN cd simple && mvn package -Dmaven.test.skip=true
CMD ["java","-jar","simple/target/simple-1.0-SNAPSHOT.jar"]

Recommended Posts

Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
Erstellen einer kompakten Java-Umgebung, die unter Docker ausgeführt wird
Docker x Java Erstellen einer zu einfachen Entwicklungsumgebung
Erstellen Sie eine TODO-App in Java 7 Create Header
Docker Compact Manual (4: Erstellen eines benutzerdefinierten Bildes)
Konsolidieren Sie JavaFX-Apps in JAR-Dateien, die auf Java 8/11 funktionieren
Erstellen Sie mit Spring Boot eine einfache Such-App
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
CICS-Java-Anwendung ausführen- (1) Führen Sie eine einfache Beispielanwendung aus
[Java] Erstellen Sie einen Filter
Üben Sie das Erstellen einer einfachen Chat-App mit Docker + Sinatra
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
[Java] Zeichnen Sie ein einfaches Muster
So erstellen Sie ein leichtes Container-Image für Java-Apps
Erstellen Sie ein Docker-Image mit installiertem Oracle JDK (yum
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
[Anfänger] Android App, die Bälle mit Sensoren rollt [Java]
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Erstellen Sie mit Docker eine Vue3-Umgebung!
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
3 Implementieren Sie einen einfachen Interpreter in Java
Ich habe eine shopify App @java erstellt
Erstellen Sie eine neue App mit Rails
Erstellen Sie ein Java-Projekt mit Eclipse
Ich habe eine Selenium-Beispiel-App erstellt, die mehrere Browser (Chrome, IE, Firefox) unterstützt, die unter Java ausgeführt werden.
Ein einfaches Beispiel für Rückrufe in Java
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Versuchen Sie, eine Server-Client-App zu erstellen
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
Eine eigenständige Java-App, die Protokolle mit slf4j / logback an CloudWatch-Protokolle sendet
Klonen Sie Ihre eigene Web-App auf GitLab, wenn Sie ein Docker-Image erstellen
Shell-Skript, das ein Docker-Image erstellt und an ECR weiterleitet
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
[Java] Erstellen und Anwenden eines Folienmasters
Erstellen Sie mit Docker schnell eine Webumgebung
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Erstellen Sie mit Spring Batch eine einfache On-Demand-Charge
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Erstellen eines einfachen Balkendiagramms mit MPAndroidChart
[Docker] [Nginx] Erstellen Sie mit Nginx eine einfache ALB
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
Stellen Sie eine Java-Web-App für Heroku bereit
[Rails 5] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie eine Liste mit mehreren Klassen
Installieren Sie Docker und erstellen Sie eine Java-Ausführungsumgebung