GlassFish Conteneurs Docker préconfigurés sur Elastic Beanstalk - AWS Elastic Beanstalk

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

GlassFish Conteneurs Docker préconfigurés sur Elastic Beanstalk

Note

Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme basées sur Amazon AMI Linux () comme étant retirées. AL1 Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

La branche de la GlassFish plateforme Docker préconfigurée qui s'exécute sur Amazon Linux AMI (AL1) n'est plus prise en charge. Pour migrer votre GlassFish application vers une plateforme Amazon Linux 2023 prise en charge, déployez GlassFish et votre code d'application sur une image Docker Amazon Linux 2023. Pour de plus amples informations, veuillez consulter la rubrique Déploiement d'une GlassFish application sur la plateforme Docker : une voie de migration vers Amazon Linux 2023.

Cette section décrit comment développer localement un exemple d'application, puis déployer l'application dans Elastic Beanstalk à l'aide d'un conteneur Docker préconfiguré.

Configuration de votre environnement de développement local

Pour cette présentation, nous utilisons un GlassFish exemple d'application.

Configuration de votre environnement
  1. Créez un dossier pour l'exemple d'application.

    ~$ mkdir eb-preconf-example ~$ cd eb-preconf-example
  2. Téléchargez le code de l'exemple d'application dans le nouveau dossier.

    ~$ wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1.zip ~$ unzip docker-glassfish-v1.zip ~$ rm docker-glassfish-v1.zip

Développement et test en local

Pour développer un exemple d' GlassFish application
  1. Ajoutez un Dockerfile au dossier racine de votre application. Dans le fichier, spécifiez l'image de base AWS Elastic Beanstalk Docker à utiliser pour exécuter votre conteneur Docker préconfiguré local. Vous déploierez ensuite votre application sur une version de plateforme Docker préconfigurée Elastic GlassFish Beanstalk. Choisissez l'image de base Docker que cette version de plateforme utilise. Pour déterminer l'image Docker actuelle de la version de plateforme, consultez la section Docker préconfiguré de la page Plateformes AWS Elastic Beanstalk prises en charge dans le guide Plateformes AWS Elastic Beanstalk .

    Exemple ~/E/Dockerfile b-preconf-example
    # For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1

    Pour plus d'informations sur l'utilisation d'un Dockerfile, consultez Préparation de votre image Docker pour le déploiement sur Elastic Beanstalk.

  2. Développez l'image Docker.

    ~/eb-preconf-example$ docker build -t my-app-image .
  3. Exécutez le conteneur Docker à partir de l'image.

    Note

    Vous devez inclure l'indicateur -p pour mapper le port 8080 sur le conteneur au port localhost 3000. Les conteneurs Docker Elastic Beanstalk exposent toujours l'application sur le port 8080 sur le conteneur. Les indicateurs -it exécutent l'image comme un processus interactif. L'indicateur --rm supprime le système de fichiers conteneur lorsque le conteneur s'arrête. Vous pouvez inclure le cas échéant l'indicateur -d pour exécuter l'image comme un démon.

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. Pour afficher l'exemple d'application, saisissez ce qui suit URL dans votre navigateur Web.

    http://localhost:3000
    GlassFish Exemple d'application affiché dans un navigateur Web

Déploiement sur Elastic Beanstalk

Après avoir testé votre application, vous êtes prêt à la déployer dans Elastic Beanstalk.

Pour déployer votre application sur Elastic Beanstalk
  1. Dans le dossier racine de votre application, renommez le Dockerfile Dockerfile.local. Cette étape est nécessaire pour qu'Elastic Beanstalk Dockerfile utilise le document contenant les instructions correctes pour qu'Elastic Beanstalk crée une image Docker personnalisée sur chaque instance Amazon de votre environnement Elastic Beanstalk. EC2

    Note

    Vous n'avez pas besoin d'effectuer cette étape si votre Dockerfile inclut des instructions qui modifient l'image Docker de base de la version de plateforme. Vous n'avez pas besoin d'utiliser un Dockerfile si votre Dockerfile contient seulement une ligne FROM pour spécifier l'image de base à partir de laquelle développer le conteneur. Dans ce cas, le Dockerfile est redondant.

  2. Créez un groupe source d'application.

    ~/eb-preconf-example$ zip myapp.zip -r *
  3. Ouvrez la console Elastic Beanstalk à l'aide de ce lien préconfiguré : console.aws.amazon.com/elasticbeanstalk/home#/ ? newApplication applicationName=tutoriels& = environmentType LoadBalanced

  4. Pour Plateforme, sous Preconfigured – Docker (Préconfiguré – Docker), choisissez Glassfish.

  5. Pour Code de l'application, choisissez Charger votre code puis Charger.

  6. Choisissez Fichier local, Browse, puis ouvrez le groupe source d'application que vous venez de créer.

  7. Choisissez Upload.

  8. Choisissez Vérifier et lancer.

  9. Vérifiez les paramètres disponibles et choisissez Créer une application.

  10. Lorsque l'environnement est créé, vous pouvez afficher l'application déployée. Choisissez l'environnement URL affiché en haut du tableau de bord de la console.

Déploiement d'une GlassFish application sur la plateforme Docker : une voie de migration vers Amazon Linux 2023

L'objectif de ce didacticiel est de fournir aux clients utilisant la GlassFish plateforme Docker préconfigurée (basée sur Amazon LinuxAMI) un chemin de migration vers Amazon Linux 2023. Vous pouvez migrer votre GlassFish application vers Amazon Linux 2023 en GlassFish déployant le code de votre application sur une image Docker Amazon Linux 2023.

Ce didacticiel explique comment utiliser la plateforme AWS Elastic Beanstalk Docker pour déployer une application basée sur le serveur d'applications Java EE dans un GlassFish environnement Elastic Beanstalk.

Nous illustrons deux approches de création d'une image Docker :

  • Simple : fournissez le code source de votre GlassFish application et laissez Elastic Beanstalk créer et exécuter une image Docker dans le cadre du provisionnement de votre environnement. Ceci est facile à configurer, au prix d'une augmentation du temps de mise en service des instances.

  • Avancé – Créez une image Docker personnalisée contenant votre code d'application et vos dépendances, et fournissez-la à Elastic Beanstalk afin de l'utiliser dans votre environnement. Cette approche est légèrement plus impliquée et réduit le temps de mise en service des instances dans votre environnement.

Prérequis

Ce didacticiel suppose que vous maîtrisez les opérations de base d'Elastic Beanstalk, l'interface de ligne de commande (EB) d'Elastic Beanstalk et Docker. CLI Si ce n'est pas déjà fait, suivez les instructions dans Commencer à utiliser Elastic Beanstalk pour lancer votre premier environnement Elastic Beanstalk. Ce didacticiel utilise l'EB CLI, mais vous pouvez également créer des environnements et télécharger des applications à l'aide de la console Elastic Beanstalk.

Pour suivre ce tutoriel, vous aurez également besoin des composants Docker suivants :

  • Une installation locale en état de fonctionnement de Docker. Pour de plus amples informations, veuillez consulter Get Docker (Obtenir Docker) sur le site web de documentation de Docker.

  • Accès à Docker Hub. Vous devez créer un ID Docker pour accéder au Docker Hub. Pour de plus amples informations, veuillez consulter Share the application (Partager l'application) sur le site Web de documentation de Docker.

Pour en savoir plus sur la configuration des environnements Docker sur des plateformes Elastic Beanstalk, consultez Préparation de votre image Docker pour le déploiement sur Elastic Beanstalk dans ce même chapitre.

Exemple simple : fournissez votre code d'application

Il s'agit d'un moyen simple de déployer votre GlassFish application. Vous fournissez au code source de votre application le fichier Dockerfile inclus dans ce tutoriel. Elastic Beanstalk crée une image Docker qui inclut votre application et la pile logicielle. GlassFish Ensuite, Elastic Beanstalk exécute l'image sur les instances de votre environnement.

Cette approche présente un problème, à savoir qu'Elastic Beanstalk crée l'image Docker localement chaque fois qu'il crée une instance pour votre environnement. La génération de l'image augmente le temps de mise en service de l'instance. Cet impact n'est pas limité à la création initiale de l'environnement. Il se produit également lors des actions de montée en charge.

Pour lancer un environnement avec un exemple d' GlassFish application
  1. Téléchargez l'exemple docker-glassfish-al2-v1.zip, puis développez le fichier .zip dans un répertoire de votre environnement de développement.

    ~$ 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

    La structure de votre répertoire doit être la suivante.

    ~/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

    Les fichiers suivants sont essentiels à la création et à l'exécution d'un conteneur Docker dans votre environnement :

    • Dockerfile – Fournit des instructions que Docker utilise pour créer une image avec votre application et les dépendances requises.

    • glassfish-start.sh – Script shell exécuté par l'image Docker pour démarrer votre application.

    • Dockerrun.aws.json— Fournit une clé de journalisation, pour inclure le journal du serveur GlassFish d'applications dans les requêtes du fichier journal. Si les GlassFish journaux ne vous intéressent pas, vous pouvez omettre ce fichier.

  2. Configurez votre répertoire local pour le déploiement sur Elastic Beanstalk.

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (Facultatif) Utilisez la commande eb local run pour créer et exécuter votre conteneur en local.

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

    Pour en savoir plus sur la commande eb local, consultez eb local. La commande n'est pas prise en charge sur Windows. Vous pouvez également créer et exécuter votre conteneur avec les commandes docker build et docker run. Pour plus d'informations, consultez la documentation Docker.

  4. (Facultatif) Lorsque votre conteneur est en cours d'exécution, utilisez la commande eb local open pour afficher votre application dans un navigateur web. Vous pouvez également ouvrir http://localhost:8080/ dans un navigateur web.

    ~/glassfish-example$ eb local open
  5. Utilisez la commande eb create pour créer un environnement et déployer votre application.

    ~/glassfish-example$ eb create glassfish-example-env
  6. Après le lancement de votre environnement, utilisez la commande eb open pour l'afficher dans un navigateur web.

    ~/glassfish-example$ eb open

Lorsque vous avez terminé l'exemple, arrêtez l'environnement et supprimez les ressources associées.

~/glassfish-example$ eb terminate --all

Exemple avancé : fournir une image Docker préconstruite

Il s'agit d'une méthode plus avancée pour déployer votre GlassFish application. Sur la base du premier exemple, vous créez une image Docker contenant le code de votre application et la pile GlassFish logicielle, puis vous la transférez vers Docker Hub. Après avoir effectué cette étape unique, vous pouvez lancer des environnements Elastic Beanstalk basés sur votre image personnalisée.

Lorsque vous lancez un environnement et que vous fournissez votre image Docker, les instances de votre environnement téléchargent et utilisent cette image directement et n'ont pas besoin de créer une image Docker. Par conséquent, le temps de mise en service de l'instance est réduit.

Remarques
  • Les étapes suivantes créent une image Docker disponible publiquement.

  • Vous utiliserez les commandes Docker de votre installation Docker locale, ainsi que vos informations d'identification Docker Hub. Pour plus d'informations, consultez la section Prérequis précédente de cette rubrique.

Pour lancer un environnement avec une image Docker d' GlassFish application prédéfinie
  1. Téléchargez et développez l'exemple docker-glassfish-al2-v1.zip comme dans l'exemple simple précédent. Si vous avez terminé cet exemple, vous pouvez utiliser le répertoire que vous possédez déjà.

  2. Créez une image Docker et poussez-la vers Docker Hub. Entrez votre identifiant Docker pour docker-id pour vous connecter à Docker Hub.

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

    Avant de transmettre votre image, il se peut que vous deviez exécuter docker login. Vous serez invité à saisir vos informations d'identification Docker Hub si vous exécutez la commande sans paramètres.

  3. Créez un répertoire supplémentaire.

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. Copiez l'exemple suivant dans un fichier nommé Dockerrun.aws.json.

    Exemple ~/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. Configurez votre répertoire local pour le déploiement sur Elastic Beanstalk.

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (Facultatif) Utilisez la commande eb local run pour exécuter votre conteneur localement.

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (Facultatif) Lorsque votre conteneur est en cours d'exécution, utilisez la commande eb local open pour afficher votre application dans un navigateur web. Vous pouvez également ouvrir http://localhost:8080/ dans un navigateur web.

    ~/glassfish-prebuilt$ eb local open
  8. Utilisez la commande eb create pour créer un environnement et déployer votre image Docker.

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. Après le lancement de votre environnement, utilisez la commande eb open pour l'afficher dans un navigateur web.

    ~/glassfish-prebuilt$ eb open

Lorsque vous avez terminé l'exemple, arrêtez l'environnement et supprimez les ressources associées.

~/glassfish-prebuilt$ eb terminate --all