Blog

Wie Sie Ihre Dropwizard-Anwendung docken

Thomas Kruitbosch

Aktualisiert Oktober 22, 2025
3 Minuten

Wenn Sie Ihre Dropwizard-Anwendung auf einem Docker-Server bereitstellen möchten, können Sie Ihre Dropwizard-Anwendung dockerisieren. Da eine Dropwizard-Anwendung bereits als ausführbare Java ARchive-Datei verpackt ist, sollte die Erstellung eines Docker-Images für eine solche Anwendung einfach sein.

In diesem Blog erfahren Sie, wie Sie eine Dropwizard-Anwendung in 4 einfachen Schritten doktern können.

Bevor Sie beginnen

  • Sie werden die Dropwizard-Beispielanwendung verwenden, die Sie im Dropwizard GitHub Repository finden.
  • Zusätzlich benötigen Sie Docker. Ich habe Boot2Docker verwendet, um die dockerisierte Dropwizard-Anwendung auf meinem Laptop auszuführen. Wenn Sie boot2Docker verwenden, benötigen Sie möglicherweise diese Boot2Docker-Umgehung, um auf Ihre gedockte Dropwizard-Anwendung zuzugreifen.
  • In diesem Blog wird nicht beschrieben, wie Sie Dropwizard-Anwendungen erstellen können. Wenn Sie mehr über die Erstellung Ihrer eigenen Dropwizard-Anwendungen erfahren möchten, ist das Dropwizard-Handbuch für den Einstieg ein hervorragender Ausgangspunkt.

Schritt 1: Erstellen einer Dockerdatei Sie können mit der Erstellung einer Dockerdatei beginnen. Docker kann automatisch Images erstellen, wenn Sie die in dieser Datei beschriebenen Anweisungen lesen. Ihr Dockerfile könnte wie folgt aussehen:

FROM dockerfile/java:openjdk-7-jdk

ADD dropwizard-Beispiel-1.0.0.jar /data/dropwizard-Beispiel-1.0.0.jar

ADD example.keystore /data/example.keystore

ADD beispiel.yml /data/example.yml

RUN java -jar dropwizard-example-1.0.0.jar db migrate /data/example.yml

CMD java -jar dropwizard-Beispiel-1.0.0.jar server /data/example.yml

EXPOSE 8080

Die Dropwizard-Anwendung benötigt eine Java-Laufzeitumgebung, daher können Sie von einem Basis-Image ausgehen, das bereits bei Docker Hub verfügbar ist, z.B.: dockerfile/java:openjdk-7-jdk. Sie müssen die Dropwizard-Anwendungsdateien zum Image hinzufügen, indem Sie die Anweisung ADD in Ihrem Dockerfile verwenden. Als Nächstes geben Sie einfach die Befehle Ihrer Dropwizard-Anwendung an, die während der Image-Erstellung und der Container-Laufzeit ausgeführt werden sollen. Im obigen Beispiel wird der Befehl db migrate ausgeführt, wenn das Docker-Image erstellt wird, und der Befehl server wird ausgeführt, wenn Sie einen Docker-Run-Befehl erteilen, um einen laufenden Container zu erstellen. Schließlich teilt die Anweisung EXPOSE Docker mit, dass Ihr Container zur Laufzeit an dem/den angegebenen Port(s) lauschen wird.

Schritt 2: Erstellen Sie das Docker-Image Legen Sie die Dockerdatei und Ihre Anwendungsdateien in ein Verzeichnis und führen Sie den Befehl Docker build aus, um ein Docker-Image zu erstellen.

docker@boot2docker:~$ docker build -t dropwizard/dropwizard-Beispiel ~/dropwizard/

In der Konsolenausgabe sollten Sie sehen können, dass der Befehl Dropwizard Application db migrate ausgeführt wird. Wenn alles in Ordnung ist, informiert Sie die letzte Zeile darüber, dass das Image erfolgreich erstellt wurde.

Erfolgreich gebaut dd547483b57b

Schritt 3: Führen Sie das Docker-Image aus Verwenden Sie den Befehl Docker run, um einen Container auf der Grundlage des von Ihnen erstellten Images zu erstellen. Wenn Sie Ihre Image-ID finden möchten, verwenden Sie den Befehl Docker images , um Ihre Images aufzulisten. Es sollte etwa 3 Sekunden dauern, bis die Dropwizard-Beispielanwendung in Docker gestartet ist.

Docker ausführen -p 8080:8080 dd547483b57b

Beachten Sie, dass ich die Option -p hinzugefügt habe, um eine Netzwerk-Portbindung einzubinden, die 8080 innerhalb des Containers auf Port 8080 auf dem Docker-Host abbildet. Sie können mit dem Befehl docker ps überprüfen, ob Ihr Container läuft.

docker@boot2docker:~$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3b6fb75adad6 dropwizard/dropwizard-example:latest "/bin/sh -c 'java -j 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp high_turing

 

  1. Testen Sie die Anwendung

Jetzt ist die Anwendung einsatzbereit. Sie können über die IP-Adresse Ihres Docker-Hosts und den Forward-Port 8080 auf die Anwendung zugreifen. Verwenden Sie zum Beispiel die Google Advanced Rest Client App, um "John Doe" zu registrieren.

GoogleRestClient

Verfasst von

Thomas Kruitbosch

Contact

Let’s discuss how we can support your journey.