Bereitstellung einer GlassFish Anwendung auf der Docker-Plattform: ein Migrationspfad zu Amazon Linux 2023 - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellung einer GlassFish Anwendung auf der Docker-Plattform: ein Migrationspfad zu Amazon Linux 2023

Ziel dieses Tutorials ist es, Kunden, die die vorkonfigurierte GlassFish Docker-Plattform (basierend auf Amazon Linux AMI) verwenden, einen Migrationspfad zu Amazon Linux 2023 zu bieten. Sie können Ihre GlassFish Anwendung auf Amazon Linux 2023 migrieren, indem Sie Ihren Anwendungscode auf einem Amazon Linux 2023 Docker-Image bereitstellen GlassFish .

Das Tutorial führt Sie durch die Verwendung der AWS Elastic Beanstalk Docker-Plattform, um eine auf dem Java GlassFish EE-Anwendungsserver basierende Anwendung in einer Elastic Beanstalk Beanstalk-Umgebung bereitzustellen.

Wir demonstrieren zwei Ansätze zum Erstellen eines Docker-Images:

  • Einfach — Stellen Sie den Quellcode Ihrer GlassFish Anwendung bereit und lassen Sie Elastic Beanstalk im Rahmen der Bereitstellung Ihrer Umgebung ein Docker-Image erstellen und ausführen. Dies ist einfach einzurichten, zu Kosten einer erhöhten Bereitstellungszeit der Instance.

  • Fortgeschritten – Erstellen Sie ein benutzerdefiniertes Docker-Image, das Ihren Anwendungscode und Abhängigkeiten enthält, und stellen Sie es Elastic Beanstalk für die Verwendung in Ihrer Umgebung bereit. Dieser Ansatz ist etwas komplexer und verkürzt die Bereitstellungszeit von Instances in Ihrer Umgebung.

Voraussetzungen

In diesem Tutorial wird davon ausgegangen, dass Sie über Kenntnisse zu den grundlegenden Elastic-Beanstalk-Operationen, den Elastic-Beanstalk-Befehlszeilenschnittstellen (EB CLI) und Docker verfügen. Sofern noch nicht geschehen, befolgen Sie die Anweisungen in Erste Schritte mit Elastic Beanstalk, um die erste Elastic-Beanstalk-Umgebung zu starten. Dieses Tutorial verwendet die EB CLI, aber Sie können auch mit der Elastic-Beanstalk-Konsole Umgebungen erstellen und Anwendungen hochladen.

Für diese Anleitung benötigen Sie außerdem die folgenden Docker-Komponenten:

  • Eine funktionierende lokale Installation von Docker. Weitere Informationen finden Sie unter Docker erhalten auf der Docker-Docs-Website.

  • Zugriff auf Docker-Hub. Sie müssen eine Docker-ID erstellen, um auf den Docker-Hub zuzugreifen. Weitere Informationen finden Sie unter Freigeben der Anwendung auf der Docker-Dokumentationswebsite.

Weitere Informationen über das Konfigurieren von Docker-Umgebungen auf Elastic-Beanstalk-Plattformen finden Sie unter Docker-Konfiguration in diesem Kapitel.

Einfaches Beispiel: Geben Sie Ihren Anwendungscode ein

Dies ist eine einfache Möglichkeit, Ihre Anwendung bereitzustellen. GlassFish Sie geben den Quellcode Ihrer Anwendung zusammen mit der in diesem Tutorial enthaltenen Dockerfile an. Elastic Beanstalk erstellt ein Docker-Image, das Ihre Anwendung und den GlassFish Software-Stack enthält. Dann führt Elastic Beanstalk das Image auf den Instances Ihrer Umgebung aus.

Ein Problem mit diesem Ansatz besteht darin, dass Elastic Beanstalk das Docker-Image lokal erstellt, wenn es eine Instance für Ihre Umgebung erstellt. Das Erstellen des Image erhöht die Zeit für die Bereitstellung von Instances. Diese Auswirkung beschränkt sich nicht auf die anfängliche Erstellung der Umgebung – auch bei Scale-Out-Aktionen kann dies stattfinden.

Um eine Umgebung mit einer Beispielanwendung zu starten GlassFish
  1. Laden Sie das Beispiel docker-glassfish-al2-v1.zip herunter und entpacken Sie die .zip-Datei dann in ein Verzeichnis in Ihrer Entwicklungsumgebung.

    ~$ curl https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-al2-v1.zip --output docker-glassfish-al2-v1.zip ~$ mkdir glassfish-example ~$ cd glassfish-example ~/glassfish-example$ unzip ../docker-glassfish-al2-v1.zip

    Ihre Verzeichnisstruktur sollte wie folgt aussehen.

    ~/glassfish-example |-- Dockerfile |-- Dockerrun.aws.json |-- glassfish-start.sh |-- index.jsp |-- META-INF | |-- LICENSE.txt | |-- MANIFEST.MF | `-- NOTICE.txt |-- robots.txt `-- WEB-INF `-- web.xml

    Die folgenden Dateien sind der Schlüssel zum Erstellen und Ausführen eines Docker-Containers in Ihrer Umgebung:

    • Dockerfile – Enthält Anweisungen, die Docker verwendet, um ein Image mit Ihrer Anwendung und erforderlichen Abhängigkeiten zu erstellen.

    • glassfish-start.sh – Ein Shell-Skript, das das Docker-Image ausführt, um Ihre Anwendung zu starten.

    • Dockerrun.aws.json— Stellt einen Logging-Schlüssel bereit, um das GlassFish Anwendungsserver-Protokoll in Logdateianfragen aufzunehmen. Wenn Sie nicht an GlassFish Protokollen interessiert sind, können Sie diese Datei weglassen.

  2. Konfigurieren Sie Ihr lokales Verzeichnis für die Bereitstellung in Elastic Beanstalk.

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (Optional) Verwenden Sie den Befehl eb local run für die lokale Erstellung und Ausführung Ihres Containers.

    ~/glassfish-example$ eb local run --port 8080
    Anmerkung

    Weitere Informationen zum eb local-Befehl finden Sie unter eb local. Der Befehl wird unter Windows nicht unterstützt. Alternativ können Sie Ihre Container mit den Befehlen docker build und docker run erstellen und ausführen. Weitere Informationen finden Sie in der Docker-Dokumentation.

  4. (Optional) Wenn Ihr Container ausgeführt wird, verwenden Sie den eb local open-Befehl, um Ihre Anwendung in einem Webbrowser anzuzeigen. Alternativ öffnen Sie http://localhost:8080/ in einem Webbrowser.

    ~/glassfish-example$ eb local open
  5. Verwenden Sie den Befehl eb create, um eine Umgebung zu erstellen und die Anwendung bereitzustellen.

    ~/glassfish-example$ eb create glassfish-example-env
  6. Verwenden Sie nach dem Starten der Umgebung den Befehl eb open, um sie in einem Webbrowser anzuzeigen.

    ~/glassfish-example$ eb open

Wenn Sie mit dem Beispiel fertig sind, beenden Sie die Umgebung und löschen Sie zugehörige Ressourcen.

~/glassfish-example$ eb terminate --all

Fortgeschrittenes Beispiel: Bereitstellen eines vorgefertigten Docker-Images

Dies ist eine fortgeschrittenere Methode zur Bereitstellung Ihrer GlassFish Anwendung. Aufbauend auf dem ersten Beispiel erstellen Sie ein Docker-Image, das Ihren Anwendungscode und den GlassFish Software-Stack enthält, und übertragen es auf Docker Hub. Nachdem Sie diesen einmaligen Schritt ausgeführt haben, können Sie Elastic Beanstalk-Umgebungen basierend auf Ihrem benutzerdefinierten Image starten.

Wenn Sie eine Umgebung starten und Ihr Docker-Image bereitstellen, laden Instances in Ihrer Umgebung dieses Image direkt herunter, verwenden es direkt und müssen kein Docker-Image erstellen. So wird die Bereitstellungszeit der Instance verkürzt.

Hinweise
  • In den folgenden Schritten erstellen Sie ein öffentlich verfügbares Docker-Image.

  • Sie verwenden Docker-Befehle aus Ihrer lokalen Docker-Installation zusammen mit Ihren Docker-Hub-Anmeldeinformationen. Weitere Informationen finden Sie im vorherigen Abschnitt mit den Voraussetzungen in diesem Thema.

Um eine Umgebung mit einem vordefinierten GlassFish Anwendungs-Docker-Image zu starten
  1. Laden Sie das Beispiel docker-glassfish-al2-v1.zip herunter und entpacken Sie es wie im vorherigen einfachen Beispiel. Wenn Sie dieses Beispiel bereits abgeschlossen haben, können Sie das bereits vorhandene Verzeichnis verwenden.

  2. Erstellen Sie ein Docker-Image und schieben Sie es an Docker Hub. Geben Sie Ihre Docker-ID für docker-id, um sich bei Docker-Hub anzumelden.

    ~/glassfish-example$ docker build -t docker-id/beanstalk-glassfish-example:latest . ~/glassfish-example$ docker push docker-id/beanstalk-glassfish-example:latest
    Anmerkung

    Bevor Sie Ihr Image übertragen, müssen Sie möglicherweise ausführe docker login. Wenn Sie den Befehl ohne Parameter ausführen, werden Sie aufgefordert, Ihre Docker-Hub-Anmeldeinformationen einzugeben.

  3. Erstellen Sie ein zusätzliches Verzeichnis.

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. Kopieren Sie das folgende Beispiel in eine Datei mit dem Namen Dockerrun.aws.json.

    Beispiel ~/glassfish-prebuilt/Dockerrun.aws.json
    { "AWSEBDockerrunVersion": "1", "Image": { "Name": "docker-username/beanstalk-glassfish-example" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8080 } ], "Logging": "/usr/local/glassfish5/glassfish/domains/domain1/logs" }
  5. Konfigurieren Sie Ihr lokales Verzeichnis für die Bereitstellung in Elastic Beanstalk.

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (Optional) Verwenden Sie den Befehl eb local run, um den Container lokal auszuführen.

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (Optional) Wenn Ihr Container ausgeführt wird, verwenden Sie den eb local open-Befehl, um Ihre Anwendung in einem Webbrowser anzuzeigen. Alternativ öffnen Sie http://localhost:8080/ in einem Webbrowser.

    ~/glassfish-prebuilt$ eb local open
  8. Verwenden Sie den Befehl eb create, um eine Umgebung zu erstellen und Ihr Docker-Image bereitzustellen.

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. Verwenden Sie nach dem Starten der Umgebung den Befehl eb open, um sie in einem Webbrowser anzuzeigen.

    ~/glassfish-prebuilt$ eb open

Wenn Sie mit dem Beispiel fertig sind, beenden Sie die Umgebung und löschen Sie zugehörige Ressourcen.

~/glassfish-prebuilt$ eb terminate --all