Treinamento
Módulo
Conteinerização e implantação de um aplicativo Java no Azure - Training
Conteinerize um aplicativo Java, envie a imagem do contêiner para o Registro de Contêiner do Azure e implante no Serviço de Kubernetes do Azure.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Apache Tomcat é uma implementação popular, livre das tecnologias Java Servlet e o servidor Java. Este artigo mostra como criar um contêiner com o Apache Tomcat e um aplicativo Web simples, implantar o contêiner para um cluster do Service Fabric executando o Linux e se conectar ao aplicativo Web.
Para saber mais sobre o Apache Tomcat, consulte a home page do Apache Tomcat.
Um computador de desenvolvimento executando:
Excluir imagens de contêiner no Registro de Contêiner do Azure. Você pode criar um registro de contêiner em sua assinatura do Azure usando o portal do Azure ou a CLI do Azure.
Siga as etapas nesta seção para criar uma imagem do Docker com base em uma imagem do Apache Tomcat e um aplicativo Web simples e, em seguida, executá-o em um contêiner em seu sistema local.
Clone o repositório de amostras de Introdução ao Service Fabric com Java no seu computador de desenvolvimento.
git clone https://github.com/Azure-Samples/service-fabric-java-getting-started.git
Altere os diretórios para o diretório de exemplo do servidor Apache Tomcat (service-fabric-java-getting-started/container-apache-tomcat-web-server-sample):
cd service-fabric-java-getting-started/container-apache-tomcat-web-server-sample
Criar um arquivo do Docker com base na imagem Tomcat oficial localizada no Hub do Docker e o exemplo de servidor Tomcat. No diretório service-fabric-java-getting-started/container-apache-tomcat-web-server-sample, crie um arquivo chamado Dockerfile (com nenhuma extensão de arquivo). Adicione o seguinte ao Dockerfile e salve as alterações:
FROM library/tomcat
EXPOSE 8080
COPY ./ApacheTomcat /usr/local/tomcat
Leia a referência do Dockerfile para saber mais informações.
Faça logon no Docker e execute o comando docker build
para criar a imagem que executa o seu aplicativo web:
docker login
docker build . -t tomcattest
Esse comando cria a nova imagem usando as instruções no seu Dockerfile, nomeando (marcação -t) a imagem tomcattest
. Para criar uma imagem de contêiner, primeiro a imagem base é baixada do Hub do Docker ao qual o aplicativo foi adicionado.
Depois de concluir o comando de compilação, execute o comando docker images
para ver informações sobre a nova imagem:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcattest latest 86838648aab6 2 minutes ago 194 MB
Verifique se seu aplicativo em contêineres está sendo executado localmente antes de enviar a ele o registro de contêiner:
docker run -itd --name tomcat-site -p 8080:8080 tomcattest.
--name
nomeia o contêiner, portanto, você pode fazer referência a ele usando um nome amigável em vez de sua ID.-p
especifica o mapeamento de porta entre o contêiner e o sistema operacional do host.Observação
A porta que você abrir com o -p
parâmetro deve ser a porta que seu aplicativo Tomcat escuta as solicitações. Na amostra atual, há um conector configurado no arquivo ApacheTomcat/conf/server.xml para escutar na porta 8080 para solicitações HTTP. Essa porta é mapeada para a porta 8080 no host.
Para saber mais sobre outros parâmetros, consulte a documentação de execução do Docker.
Para testar seu contêiner, abra um navegador e insira uma das URLs a seguir. Você verá uma variante da tela de boas-vindas "Olá, Mundo" para cada URL.
http://localhost:8080/hello
http://localhost:8080/hello/sayhello
http://localhost:8080/hello/sayhi
Pare o contêiner e exclua-o do seu computador de desenvolvimento:
docker stop tomcat-site
docker rm tomcat-site
Agora que você verificou que a imagem do Tomcat é executada em um contêiner no computador de desenvolvimento, você deve enviá-la para um repositório em um registro de contêiner para reduzir a interrupção dos seus fluxos de trabalho de desenvolvimento e implantação de imagens. Este artigo usa o Registro de Contêiner do Azure para armazenar a imagem, mas com algumas modificações de etapas, você pode usar qualquer registro de contêiner que você escolher. Neste artigo o nome do registro será considerado myregistry e o nome do registro completo é myregistry.azurecr.io. Altere-os adequadamente para seu cenário.
Execute docker login
para entrar em seu registro de contêiner com as credenciais de registro.
O exemplo a seguir passa a ID e a senha de uma entidade de serviço do Microsoft Entra. Por exemplo, você pode atribuir uma entidade de serviço ao registro para um cenário de automação. Ou, você pode entrar usando o nome de usuário e a senha do registro.
docker login myregistry.azurecr.io -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p myPassword
O comando a seguir cria uma marca ou alias imagem, com um caminho totalmente qualificado para o registro. Este exemplo coloca a imagem no namespace samples
para evitar confusão na raiz do registro.
docker tag tomcattest myregistry.azurecr.io/samples/tomcattest
Enviar a imagem para o eu registro de contêiner:
docker push myregistry.azurecr.io/samples/tomcattest
Agora que você já enviou por push a imagem do Tomcat para um registro de contêiner, você pode criar e implantar um aplicativo de contêiner do Service Fabric que extrai a imagem do Tomcat do seu registro e o executa como um serviço em contêineres no cluster.
Crie um novo diretório fora do seu clone local (fora da árvore de diretório service-fabric-java-getting-started). Alterne para ele e usar o Yeoman para criar uma estrutura para um aplicativo de contêiner:
yo azuresfcontainer
Insira os valores a seguir quando solicitado:
No manifesto do serviço (ServiceFabricTomcat/ServiceFabricTomcat/TomcatServicePkg/ServiceManifest.xml), adicione o seguinte XML sob a marca de raiz ServiceManfest para abrir a porta que o seu aplicativo está executando para solicitações. A marca do ponto de extremidade declara o protocolo e porta para o ponto de extremidade. Para este artigo, o serviço em contêineres escuta na porta 8080:
<Resources>
<Endpoints>
<!-- This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Name="endpointTest" Port="8080" Protocol="tcp"/>
</Endpoints>
</Resources>
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<PortBinding ContainerPort="8080" EndpointRef="endpointTest"/>
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
</ContainerHostPolicies>
</Policies>
A marca ContainerHostPolicies especifica políticas para a ativação de hosts de contêiner.
Para conectar ao cluster local do Service Fabric, execute:
sfctl cluster select --endpoint http://localhost:19080
Para se conectar a um cluster seguro do Azure, verifique se o certificado do cliente está presente como um arquivo .pem no diretório ServiceFabricTomcat e execute:
sfctl cluster select --endpoint https://PublicIPorFQDN:19080 -pem your-certificate.pem -no-verify
No comando anterior, substitua your-certificate.pem
pelo nome do seu arquivo de certificado do cliente. Em ambientes de teste e desenvolvimento, o certificado usado geralmente é o certificado de cluster. Se seu certificado não é autoassinado, omita o -no-verify
parâmetro.
Certificados de cluster normalmente são baixados localmente como arquivos. pfx. Se você ainda não tiver o certificado no formato PEM, você pode executar o comando a seguir para criar um arquivo. PEM de um arquivo. pfx:
openssl pkcs12 -in your-certificate.pfx -out your-certificate.pem -nodes -passin pass:your-pfx-password
Se o seu arquivo .pfx não for protegido por senha, use -passin pass:
para o último parâmetro.
Execute o script de instalação fornecido no modelo para implantar o aplicativo em seu cluster. O script copia o novo pacote de aplicativos para o armazenamento de imagem do cluster, registra o tipo de aplicativo e cria uma instância do aplicativo.
./install.sh
Depois de executar o script de instalação, abra um navegador e navegue até o Service Fabric Explorer:
http://localhost:19080/Explorer
(substituir localhost com o endereço IP privado da VM se estiver usando Vagrant no Mac OS X).https://PublicIPorFQDN:19080/Explorer
.Expanda o nó Aplicativos e observe que agora há uma entrada para o seu tipo de aplicativo, e ServiceFabricTomcatType, e outra para a primeira instância desse tipo. Pode levar alguns minutos para o aplicativo para implantar por completo, portanto, seja paciente.
Para acessar o aplicativo no servidor Tomcat, abra uma janela do navegador e insira qualquer uma das URLs a seguir. Se você implantou o cluster local, use localhost para PublicIPorFQDN. Você verá uma variante da tela de boas-vindas "Olá, Mundo" para cada URL.
Use o script de desinstalação fornecido com o modelo para excluir a instância do aplicativo no cluster e cancelar o registro do tipo de aplicativo.
./uninstall.sh
Depois que você enviar a imagem para o registro de contêiner, você pode excluir a imagem local do seu computador de desenvolvimento:
docker rmi tomcattest
docker rmi myregistry.azurecr.io/samples/tomcattest
Treinamento
Módulo
Conteinerização e implantação de um aplicativo Java no Azure - Training
Conteinerize um aplicativo Java, envie a imagem do contêiner para o Registro de Contêiner do Azure e implante no Serviço de Kubernetes do Azure.