Vorkonfigurierte Docker-Container (Amazon Linux AMI)
Anmerkung
Am 18. Juli 2022 stellte Elastic Beanstalk den Status aller Plattformzweige auf Basis von Amazon-Linux-AMI (AL1) auf außer Betrieb genommen. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.
Die vorkonfigurierte Docker-GlassFish-Plattformverzweigung, die auf dem Amazon-Linux-AMI (AL1) ausgeführt wird, wird nicht mehr unterstützt. Stellen Sie zum Migrieren Ihrer GlassFish-Anwendung zu einer Amazon-Linux-2023-Plattform GlassFish und den Anwendungscode in einem Amazon-Linux-2023-Docker-Image bereit. Weitere Informationen finden Sie im Thema Bereitstellen einer GlassFish-Anwendung auf der Docker-Plattform: Migrationspfad zu Amazon Linux 2023.
Dieser Abschnitt zeigt die lokale Entwicklung einer Beispielanwendung und die anschließende Bereitstellung in Elastic Beanstalk mit einem vorkonfigurierten Docker-Container.
Einrichten der lokalen Entwicklungsumgebung
Für diese Anleitung verwenden wir eine GlassFish-Beispielanwendung.
Einrichten Ihrer Umgebung
-
Erstellen Sie einen neuen Ordner für die Beispielanwendung.
~$
mkdir eb-preconf-example
~$cd eb-preconf-example
-
Laden Sie den Beispiel-Anwendungscode in den neuen Ordner herunter.
~$
wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1.zip
~$unzip docker-glassfish-v1.zip
~$rm docker-glassfish-v1.zip
Lokales Entwickeln und Testen
Entwickeln einer Beispiel-GlassFish-Anwendung
-
Fügen Sie eine
Dockerfile
-Datei zum Stammordner der Anwendung hinzu. Geben Sie in der Datei an, mit welchem AWS Elastic Beanstalk Docker-Basis-Image von der lokale vorkonfigurierte Docker-Container ausgeführt werden soll. Sie stellen Ihre Anwendung später in einer vorkonfigurierten Plattformversion von Elastic Beanstalk-Docker-Glassfish bereit. Wählen Sie das Docker-Basis-Image, das diese Plattformversion verwendet. Informationen zum Bestimmen des aktuellen Docker-Image der Plattformversion finden Sie im Abschnitt Vorkonfigurierter Docker der Seite Von AWS Elastic Beanstalk unterstützte Plattformen im AWS Elastic Beanstalk-Plattformhandbuch.Beispiel ~/Eb-preconf-example/Dockerfile
# For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1
Weitere Informationen zur Verwendung von
Dockerfile
finden Sie unter Docker-Konfiguration. -
Erstellen Sie das Docker-Image.
~/eb-preconf-example$
docker build -t my-app-image .
-
Führen Sie den Docker-Container aus dem Image aus.
Anmerkung
Sie müssen das Flag
-p
einbinden, um Port 8080 auf dem Container dem Localhost-Port 3000 zuzuordnen. In Elastic Beanstalk stellen die Docker-Container die Anwendung stets über Port 8080 auf dem Container bereit. Mit den Flags-it
wird das Image als interaktiver Prozess ausgeführt. Mithilfe des Flags--rm
wird das Container-Dateisystem nach Beendigung des Containers bereinigt. Optional können Sie das Flag-d
einbeziehen und das Image als Daemon ausführen.$
docker run -it --rm -p 3000:8080 my-app-image
-
Geben Sie die folgende URL in den Webbrowser ein, um die Beispielanwendung anzuzeigen.
http://localhost:3000
Bereitstellen in Elastic Beanstalk
Nachdem Sie die Anwendung getestet haben, können Sie diese nun in Elastic Beanstalk bereitstellen.
So stellen Sie Ihre Anwendung in Elastic Beanstalk bereit
-
Ändern Sie im Stammordner der Anwendung den Dateinamen von
Dockerfile
inDockerfile.local
. Dieser Schritt ist erforderlich, damit Elastic Beanstalk dieDockerfile
-Datei mit den richtigen Anweisungen für Elastic Beanstalk verwendet, um ein angepasstes Docker-Image auf den einzelnen Amazon EC2-Instances in Ihrer Elastic Beanstalk-Umgebung zu erstellen.Anmerkung
Dieser Schritt ist nicht nötig, wenn die
Dockerfile
-Datei Anweisungen enthält, mit denen das Docker-Basis-Image der Plattformversion geändert wird. Sie brauchen überhaupt keineDockerfile
-Datei, sofern dieDockerfile
-Datei nur eineFROM
-Zeile enthält und darin das Basis-Image angibt, mit dem der Container erstellt werden soll. In diesem Fall ist dieDockerfile
-Datei überflüssig. -
Erstellen Sie das Quell-Bundle der Anwendung.
~/eb-preconf-example$
zip myapp.zip -r *
-
Öffnen Sie die Elastic Beanstalk-Konsole mit diesem vorkonfigurierten Link: console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced
-
Wählen Sie für Platform (Plattform) unter Preconfigured – Docker (Vorkonfiguriert – Docker) die Option Glassfish aus.
-
Unter Application code wählen Sie Upload your code und dann Upload aus.
-
Wählen Sie Local file (Lokale Datei), wählen Sie Browse (Durchsuchen) und öffnen Sie dann das Quell-Bundle, das Sie erstellt haben.
-
Klicken Sie auf Hochladen.
-
Klicken Sie auf Review and launch (Überprüfen und starten).
-
Prüfen Sie die verfügbaren Einstellungen und wählen Sie Create app (Anwendung erstellen) aus.
-
Wenn die Umgebung erstellt wurde, können Sie die bereitgestellte Anwendung anzeigen. Wählen Sie die Umgebungs-URL, die oben im Konsolendashboard angezeigt wird.