Contenção e Implantação da Aplicação Java EE
Criando uma Imagem Docker para a Aplicação Web Java EE
Para conter a sua aplicação web Java EE utilizando Docker, precisará criar uma imagem Docker. Aqui está um exemplo de um Dockerfile que pode utilizar:
## Utilize uma imagem base com Java e um servidor de aplicações
FROM openjdk:11-jdk-slim as builder
## Copie o ficheiro WAR da aplicação web Java EE para o contêiner
COPY target/*.war /app.war
## Utilize uma imagem de servidor de aplicações leve como imagem final
FROM tomcat:9.0-jdk11-openjdk-slim
## Copie o ficheiro WAR para o diretório webapps do Tomcat
COPY --from=builder /app.war /usr/local/tomcat/webapps/
## Expõe a porta padrão do Tomcat
EXPOSE 8080
## Inicie o servidor Tomcat
CMD ["catalina.sh", "run"]
Neste exemplo, utilizamos um processo de construção multi-stage. A primeira fase, builder, copia o ficheiro WAR da aplicação web Java EE para o contêiner. A segunda fase, tomcat:9.0-jdk11-openjdk-slim, é uma imagem Tomcat leve que serve como a imagem final. O ficheiro WAR é então copiado para o diretório webapps do Tomcat, e o servidor Tomcat é iniciado.
Construindo e Executando a Imagem Docker
Para construir a imagem Docker, execute o seguinte comando no diretório que contém o Dockerfile:
docker build -t my-java-ee-app .
Isto criará uma imagem Docker com a etiqueta my-java-ee-app.
Para executar o contêiner Docker, utilize o seguinte comando:
docker run -p 8080:8080 my-java-ee-app
Isto iniciará o contêiner Docker e mapeará a porta 8080 do contêiner para a porta 8080 do host, permitindo aceder à aplicação web Java EE através do seu navegador web em http://localhost:8080.
Implantando a Aplicação Java EE num Docker Swarm ou Kubernetes
Depois de ter a sua aplicação web Java EE contida e a funcionar num contêiner Docker, pode implantá-la num cluster Docker Swarm ou Kubernetes para escalabilidade e alta disponibilidade.
Num Docker Swarm, pode criar um serviço utilizando o comando docker service create, especificando a imagem Docker e quaisquer opções de configuração necessárias.
Num cluster Kubernetes, pode criar um Deployment, Service e outros recursos Kubernetes para gerir a implantação e escalabilidade da sua aplicação web Java EE.
graph TD
A[Imagem Docker da Aplicação Web Java EE] --> B[Contêiner Docker]
B --> C[Docker Swarm ou Kubernetes]
C --> D[Ambiente de Produção]
Ao conter a sua aplicação web Java EE e implantá-la numa plataforma de orquestração de contêineres, pode tirar partido das vantagens do Docker, como implantação consistente, escalabilidade e portabilidade, para garantir o funcionamento fiável e eficiente da sua aplicação web de nível empresarial.