GlassFish Contêineres Docker pré-configurados no Elastic Beanstalk - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

GlassFish Contêineres Docker pré-configurados no Elastic Beanstalk

nota

Em 18 de julho de 2022, o Elastic Beanstalk definiu o status de todas as filiais da plataforma baseadas no Amazon Linux () como descontinuadas. AMI AL1 Para obter mais informações sobre como migrar para uma ramificação da plataforma Amazon Linux 2023 atual e totalmente compatível, consulte Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2.

A ramificação pré-configurada GlassFish da plataforma Docker que é executada no Amazon Linux AMI (AL1) não é mais suportada. Para migrar seu GlassFish aplicativo para uma plataforma Amazon Linux 2023 compatível, implante GlassFish e seu código de aplicativo em uma imagem Docker do Amazon Linux 2023. Para obter mais informações, consulte o tópico a seguir, Implantação de um GlassFish aplicativo na plataforma Docker: um caminho de migração para o Amazon Linux 2023.

Esta seção mostra como desenvolver uma aplicação demonstrativa localmente e implantá-la no Elastic Beanstalk com um contêiner pré-configurado do Docker.

Configurar seu ambiente de desenvolvimento local

Para este passo a passo, usamos um aplicativo de GlassFish exemplo.

Para configurar seu ambiente
  1. Crie uma pasta para o aplicativo de exemplo.

    ~$ mkdir eb-preconf-example ~$ cd eb-preconf-example
  2. Faça o download do código de aplicativo de exemplo para a nova pasta.

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

Desenvolver e testar localmente

Para desenvolver um GlassFish aplicativo de exemplo
  1. Adicione um Dockerfile à pasta raiz do seu aplicativo. No arquivo, especifique a imagem base do AWS Elastic Beanstalk Docker a ser usada para executar seu contêiner Docker pré-configurado local. Posteriormente, você implantará seu aplicativo em uma versão pré-configurada da plataforma Docker do Elastic GlassFish Beanstalk. Escolha a imagem de base do Docker que essa versão da plataforma usa. Para descobrir a imagem do Docker atual da versão da plataforma, consulte a seção Docker pré-configurado na página Plataformas compatíveis com o AWS Elastic Beanstalk no guia de Plataformas do AWS Elastic Beanstalk .

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

    Para obter mais informações sobre como usar um Dockerfile, consulte Preparando sua imagem do Docker para implantação no Elastic Beanstalk.

  2. Crie a imagem do Docker.

    ~/eb-preconf-example$ docker build -t my-app-image .
  3. Execute o contêiner Docker da imagem.

    nota

    Você deve incluir o sinalizador -p para mapear a porta 8080 no contêiner para a porta 3000 do localhost. Os contêineres do Docker do Elastic Beanstalk sempre expõem a aplicação na porta 8080 no contêiner. O sinalizador -it executa a imagem como processo interativo. O sinalizador --rm limpa o sistema de arquivos do contêiner quando o contêiner é encerrado. Você tem a opção de incluir o sinalizador -d para executar a imagem como um daemon.

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. Para ver o aplicativo de exemplo, digite o seguinte URL em seu navegador da web.

    http://localhost:3000
    O aplicativo de GlassFish exemplo exibido em um navegador da web

Implantar no Elastic Beanstalk

Depois de testar a aplicação, você estará pronto para implantá-la no Elastic Beanstalk.

Como implantar a aplicação no Elastic Beanstalk
  1. Na pasta raiz do seu aplicativo, renomeie o Dockerfile como Dockerfile.local. Essa etapa é necessária para que o Elastic Beanstalk Dockerfile use a que contém as instruções corretas para que o Elastic Beanstalk crie uma imagem personalizada do Docker em cada instância da Amazon em seu ambiente do Elastic Beanstalk. EC2

    nota

    Não será necessário executar essa etapa se o Dockerfile incluir instruções que modifiquem a imagem de base do Docker da versão da plataforma. Não será necessário usar um Dockerfile se o seu Dockerfile incluir apenas uma linha FROM para especificar a imagem de base da qual criar o contêiner. Neste caso, o Dockerfile é redundante.

  2. Crie um pacote de origem do aplicativo.

    ~/eb-preconf-example$ zip myapp.zip -r *
  3. Abra o console do Elastic Beanstalk com este link pré-configurado: console.aws.amazon.com/elasticbeanstalk/home#/? newApplication applicationName=tutoriais& = environmentType LoadBalanced

  4. Em Platform (Plataforma), em Preconfigured – Docker (Pré-configurado - Docker), escolha Glassfish.

  5. Para Application code, escolha Upload your code e Upload.

  6. Escolha Local file (Arquivo local), selecione Browse (Procurar) e abra o pacote de origem do aplicativo que você acabou de criar.

  7. Escolha Carregar.

  8. Selecione Review and launch.

  9. Revise as configurações disponíveis e, em seguida, escolha Create app.

  10. Quando o ambiente é criado, você pode visualizar o aplicativo implantado. Escolha o ambiente URL que é exibido na parte superior do painel do console.

Implantação de um GlassFish aplicativo na plataforma Docker: um caminho de migração para o Amazon Linux 2023

O objetivo deste tutorial é fornecer aos clientes que usam a GlassFish plataforma Docker pré-configurada (baseada no Amazon LinuxAMI) um caminho de migração para o Amazon Linux 2023. Você pode migrar seu GlassFish aplicativo para o Amazon Linux 2023 implantando seu código GlassFish de aplicativo em uma imagem Docker do Amazon Linux 2023.

O tutorial explica como usar a plataforma AWS Elastic Beanstalk Docker para implantar um aplicativo baseado no servidor de aplicativos Java EE em um ambiente do GlassFish Elastic Beanstalk.

Demonstramos duas abordagens para criar uma imagem do Docker:

  • Simples — forneça o código-fonte do seu GlassFish aplicativo e deixe o Elastic Beanstalk criar e executar uma imagem do Docker como parte do provisionamento do seu ambiente. Isso é fácil de configurar e tem um custo de maior tempo de provisionamento de instâncias.

  • Avançado: crie uma imagem do Docker personalizada que tenha o código da aplicação e as dependências e forneça-a para o Elastic Beanstalk para uso no ambiente. Essa abordagem é um pouco mais envolvida e diminui o tempo de provisionamento de instâncias em seu ambiente.

Pré-requisitos

Este tutorial pressupõe que você tenha algum conhecimento das operações básicas do Elastic Beanstalk, da interface de linha de comando (EB) do Elastic Beanstalk e do Docker. CLI Caso ainda não tenha, siga as instruções em Introdução ao Elastic Beanstalk para iniciar seu primeiro ambiente do Elastic Beanstalk. Este tutorial usa o EB CLI, mas você também pode criar ambientes e fazer upload de aplicativos usando o console do Elastic Beanstalk.

Para concluir este tutorial, você precisará fazer o seguinte:

  • Uma instalação local de trabalho do Docker. Para obter mais informações, consulte Obter o Docker no site de documentação do Docker.

  • Acesso ao Docker Hub. Você precisará criar um ID do Docker para acessar o Docker Hub. Para obter mais informações, consulte Compartilhar a aplicação no site de documentação do Docker.

Para saber mais sobre como configurar ambientes do Docker em plataformas do Elastic Beanstalk, consulte Preparando sua imagem do Docker para implantação no Elastic Beanstalk neste mesmo capítulo.

Exemplo simples: fornecer o código do aplicativo

Essa é uma maneira fácil de implantar seu GlassFish aplicativo. Forneça o código-fonte da aplicação juntamente com o Dockerfile incluído neste tutorial. O Elastic Beanstalk cria uma imagem do Docker que inclui seu aplicativo e a pilha de software. GlassFish Depois, o Elastic Beanstalk executa a imagem nas instâncias do ambiente.

Um problema com essa abordagem é que o Elastic Beanstalk cria a imagem do Docker localmente sempre que ela cria uma instância para o ambiente. A criação da imagem aumenta o tempo de provisionamento de instâncias. Esse impacto não se limita à criação inicial do ambiente. Ele também ocorre durante ações de expansão.

Para iniciar um ambiente com um GlassFish aplicativo de exemplo
  1. Faça download do exemplo docker-glassfish-al2-v1.zip e expanda o arquivo .zip para um diretório em seu ambiente de desenvolvimento.

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

    A estrutura do diretório deve ser a seguinte.

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

    Os arquivos a seguir são fundamentais para criar e executar um contêiner do Docker em seu ambiente:

    • Dockerfile: fornece instruções que o Docker usa para criar uma imagem com a aplicação e as dependências necessárias.

    • glassfish-start.sh: um script shell que a imagem do Docker executa para iniciar a aplicação.

    • Dockerrun.aws.json— Fornece uma chave de registro, para incluir o log do servidor de GlassFish aplicativos nas solicitações do arquivo de log. Se você não estiver interessado em GlassFish registros, você pode omitir esse arquivo.

  2. Configure o diretório local para implantação no Elastic Beanstalk.

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (Opcional) Use o comando eb local run para criar e executar seu contêiner localmente.

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

    Para saber mais sobre o comando eb local, consulte eb local. O comando não é compatível no Windows. Como alternativa, você pode criar e executar seu contêiner com os comandos docker build e docker run. Para obter mais informações, consulte a Documentação do Docker.

  4. (Opcional) Embora o contêiner esteja em execução, use o comando eb local open para visualizar o aplicativo em um navegador da web. Opcionalmente, abra http://localhost:8080/ em um navegador da Web.

    ~/glassfish-example$ eb local open
  5. Use o comando eb create para criar um ambiente e implante seu aplicativo.

    ~/glassfish-example$ eb create glassfish-example-env
  6. Depois que o ambiente for iniciado, use o comando eb open para visualizá-lo em um navegador da web.

    ~/glassfish-example$ eb open

Quando terminar de trabalhar com o exemplo, encerre o ambiente e exclua os recursos relacionados.

~/glassfish-example$ eb terminate --all

Exemplo avançado: fornecer uma imagem do Docker pré-compilada

Essa é uma forma mais avançada de implantar seu GlassFish aplicativo. Com base no primeiro exemplo, você cria uma imagem do Docker contendo o código do aplicativo e a pilha de GlassFish software e a envia para o Docker Hub. Depois de realizar essa etapa única, é possível iniciar ambientes do Elastic Beanstalk com base na imagem personalizada.

Ao iniciar um ambiente e fornecer sua imagem do Docker, as instâncias no seu ambiente fazem download e usam essa imagem diretamente e não precisam criar uma imagem do Docker. Portanto, o tempo de provisionamento de instâncias é reduzido.

Observações
  • As etapas a seguir criam uma imagem do Docker disponível publicamente.

  • Você usará comandos do Docker da instalação local do Docker, juntamente com as credenciais do Docker Hub. Para obter mais informações, consulte a seção Pré-requisitos anterior neste tópico.

Para iniciar um ambiente com uma imagem Docker de GlassFish aplicativo pré-criada
  1. Faça download e expanda o exemplo docker-glassfish-al2-v1.zip como no exemplo simples anterior. Se concluiu esse exemplo, é possível usar o diretório que você já tem.

  2. Crie uma imagem do Docker e envie-a para o Docker Hub. Insira seu ID do Docker para docker-id para fazer login no Docker Hub.

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

    Antes de enviar sua imagem, talvez seja necessário executar docker login. Suas credenciais do Docker Hub serão solicitadas se você executar o comando sem parâmetros.

  3. Crie um diretório adicional.

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. Copie o exemplo a seguir em um arquivo chamado Dockerrun.aws.json.

    exemplo ~/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. Configure o diretório local para implantação no Elastic Beanstalk.

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (Opcional) Use o comando eb local run para executar o contêiner localmente.

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (Opcional) Embora o contêiner esteja em execução, use o comando eb local open para visualizar o aplicativo em um navegador da web. Opcionalmente, abra http://localhost:8080/ em um navegador da Web.

    ~/glassfish-prebuilt$ eb local open
  8. Use o comando eb create para criar um ambiente e implante sua imagem do Docker.

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. Depois que o ambiente for iniciado, use o comando eb open para visualizá-lo em um navegador da web.

    ~/glassfish-prebuilt$ eb open

Quando terminar de trabalhar com o exemplo, encerre o ambiente e exclua os recursos relacionados.

~/glassfish-prebuilt$ eb terminate --all