Pular para o conteúdo
Início » Containerizando uma aplicação com JBoss e WildFly

Containerizando uma aplicação com JBoss e WildFly

A containerização de aplicativos é uma abordagem moderna e eficiente para o empacotamento e implantação de software. Neste tutorial, vamos explorar como containerizar uma aplicação baseada em JBoss ou WildFly usando o Nginx como frontend reverso e habilitando SSL para uma comunicação segura. Vamos dividir o processo em várias etapas:

Passo 1: Preparação do ambiente

Certifique-se de ter o Docker instalado no seu sistema. Você pode fazer o download e instalar o Docker a partir do site oficial (https://www.docker.com/).

Passo 2: Preparação da aplicação

Certifique-se de ter a aplicação JBoss ou WildFly pronta para ser containerizada. Isso pode ser um arquivo WAR ou EAR da sua aplicação Java. Certifique-se de ter o arquivo de implantação (deployment) no diretório de trabalho.

Passo 3: Criação do Dockerfile

Agora vamos criar o Dockerfile, que é um arquivo de configuração que define como o contêiner será construído. No diretório de trabalho, crie um arquivo chamado “Dockerfile” (sem extensão) e adicione o seguinte conteúdo:

# Imagem base do JBoss ou WildFly
FROM jboss/wildfly:latest

# Copia o arquivo de implantação para a pasta de implantação do servidor
COPY sua-aplicacao.war /opt/jboss/wildfly/standalone/deployments/

# Expondo a porta padrão do servidor WildFly
EXPOSE 8080

# Instalando o Nginx
RUN apt-get update && apt-get install -y nginx

# Configurando o Nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf

# Expondo a porta HTTPS
EXPOSE 443

# Comando para iniciar o Nginx e o WildFly simultaneamente
CMD service nginx start && /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0

Neste Dockerfile, usamos a imagem base do JBoss ou WildFly e copiamos o arquivo de implantação para a pasta de implantação do servidor. Em seguida, instalamos e configuramos o Nginx para funcionar como frontend reverso. A porta 8080 é exposta para o WildFly e a porta 443 para o Nginx, que será configurado posteriormente com SSL.

Passo 4: Configuração do Nginx

Agora vamos criar os arquivos de configuração do Nginx. No diretório de trabalho, crie um arquivo chamado “nginx.conf” e adicione o seguinte conteúdo:

worker_processes 1;

events {
    worker_connections 1024;
}

http {
    sendfile on;

    server {
        listen 80;
        server_name seu-dominio.com;

        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

Neste arquivo, configuramos o Nginx para ouvir na porta 80 e encaminhar as solicitações para o WildFly na porta 8080.

Agora, crie outro arquivo chamado “default.conf” e adicione o seguinte conteúdo:

server {
    listen 443 ssl;
    server_name seu-dominio.com;

    ssl_certificate /etc/nginx/ssl/seu-certificado.crt;
    ssl_certificate_key /etc/nginx/ssl/sua-chave-privada.key;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Neste arquivo, configuramos o Nginx para ouvir na porta 443 com SSL ativado. Certifique-se de substituir “seu-dominio.com” pelo seu domínio real. Além disso, você precisa ter um certificado SSL válido e sua chave privada. Substitua “seu-certificado.crt” pelo caminho do arquivo do certificado e “sua-chave-privada.key” pelo caminho da chave privada.

Passo 5: Construção da imagem Docker

No terminal, navegue até o diretório de trabalho onde você salvou o Dockerfile e os arquivos de configuração do Nginx. Execute o seguinte comando para construir a imagem Docker:

docker build -t nome-da-imagem .

Certifique-se de substituir “nome-da-imagem” pelo nome que você deseja dar à sua imagem Docker.

Passo 6: Execução do contêiner

Agora que a imagem Docker foi criada, você pode executar o contêiner com o seguinte comando:

docker run -d -p 80:80 -p 443:443 nome-da-imagem

Este comando executa o contêiner em segundo plano (-d) e mapeia as portas 80 e 443 do host para as respectivas portas do contêiner. Certifique-se de substituir “nome-da-imagem” pelo nome da imagem Docker que você construiu.

Passo 7: Teste da aplicação

Agora você pode acessar a aplicação através do seu domínio, usando HTTPS. Abra um navegador e digite o endereço “https://seu-dominio.com“. Você deverá ver a aplicação JBoss ou WildFly sendo servida pelo Nginx através do SSL.

Parabéns! Você containerizou com sucesso a sua aplicação JBoss ou WildFly usando o Nginx como frontend reverso com SSL habilitado. Agora você pode implantar e escalar facilmente a sua aplicação usando contêineres Docker.