Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

O Docker é uma plataforma open source que possibilita a criação e administração de ambientes de forma isolada. Dessa forma, uma aplicação pode ser empacotada dentro de um container com todas as bibliotecas e recursos necessários para ser executada em outro host que possua apenas o Docker instalado, possibilitando a integração com múltiplos clouds, como AWS, Azure ou Google.


Informações

A partir da versão 2.9.6-SP.44, o arquivo Dockerfile não é mais criado junto com o projeto, mas ao gerar um Pacote para deploy. Isso tornou a virtualização de uma aplicação Cronapp muito mais simples, bastando apenas descompactar o pacote deploy e executar os scripts run.bat ou run.sh que acompanha o pacote.

Requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais:

  1. Conhecimentos básicos sobre Docker e Nginx.

  2. WSL instalado e configurado.

  3. Projeto Cronapp criado. Caso haja dúvidas de como criar um projeto, acesse a documentação Criar projeto.

  4. Recomendamos que o equipamento possua os requisitos do ambiente de produção.

Terminal

Os comandos exibidos nesse tutorial serão executados via terminal WSL e será necessário que o usuário tenha perfil Administrador (root) do sistema. Para mais informações de instalação e configuração, consulte a documentação oficial.

Âncora
dockerfile
dockerfile

Arquivo Dockerfile

Para construir uma imagem, o Docker utiliza as instruções contidas no arquivo Dockerfile, normalmente localizado na raiz do projeto. Todos os projetos criados a partir da versão 2.7 do Cronapp já possui esse arquivo configurado para construir uma imagem local ou executá-lo em um CI/CD pipeline.

Abaixo apresenta como esse arquivo está configurado.

Bloco de código
languagevb
themeEmacs
firstline1
titlearquivo Dockerfilelinenumberstrue
docker build -t io.cronapp.apps.projetodeploy:1.0-SNAPSHOT .
docker run -p 81:80  -it io.cronapp.apps.projetodeploy:1.0-SNAPSHOT
Dica

Caso necessário, é possível editar o comando Maven (RUN mvn clean && mvn package ...) e adicionar novos parâmetros, como por exemplo, incluir o projeto mobile no arquivo .war

Veja a lista de parâmetros Cronapp ao gerar pacotes Maven no tópico Exportando war via comando (High-code) da documentação Importar e exportar projetos.

Passos

Este tutorial demonstrará como executar os quatro tipos de opções disponíveis de Pacote para Deploy utilizando comandos no terminal WSL. Para mais informações sobre este recurso, consulte o tópico "Pacote para Deploy" da documentação Importar e exportar projetos.

War Completo

Para iniciar, acesse no menu do sistema Projeto > Exportar. Em seguida, selecione a opção Pacote para Deploy (destaque 1 da Figura 1). Na janela que exibir, escolha a opção "War Completo" no campo Tipo de Artefato (2) e habilite a checkbox do campo Dockerfile (3),  conforme apresentado na imagem abaixo. Por fim, clique em "OK" para iniciar o download do pacote.

Âncora
figura1
figura1


Figura 1 - Janela Pacote para Deploy


Após concluir o download, extraia os arquivos da pasta .zip para uma pasta descompactada, para este exemplo a nomeamos como "war-completo". Em seguida, adicione a pasta descompactada no diretório WSL do usuário, seguindo o caminho \\wsl.localhost\Ubuntu-20.04\home\nome-do-usuário (Figura 1.1).

Em seguida, vamos alterar a porta na qual o projeto local será executado. Por padrão, o script run.sh (destaque 1 na Figura 1.1), contendo os comandos Docker para facilitar a virtualização da aplicação, utiliza a porta 80 para a execução do projeto. No entanto, essa é a porta padrão utilizada pelo Ngnix. Portanto, vamos alterá-la para a porta 81. Para isso, abra o script run.sh em um editor de texto e altere "80:80" para "81:80" (2). Por fim, salve as alterações.


Figura 1.1 - Diretório wsl onde a pasta descompactada foi adicionada e edição do script run.sh


Após seguir esses passos, vamos executar o script run.sh no terminal do WSL. No terminal, acesse o diretório que contém a pasta descompactada e execute o seguinte comando:

Bloco de código
languagetext
titleComando
sh run.sh


Após executar o comando, você poderá abrir o projeto localmente no navegador usando o endereço com a porta configurada no script run.sh: http://localhost:81/. Na imagem abaixo, à direita, podemos ver a execução do projeto no terminal do WSL, e à esquerda, a execução do projeto local no endereço configurado (destaque 1 na Figura 1.2).


Figura 1.2 - Execução do projeto local

War Separado

No passo anterior, executamos um pacote completo que integra tanto o back-end quanto o front-end. Agora, vamos apresentar como executar um pacote War Servidor e War Front-end separadamente.

Âncora
warServidor
warServidor

War Servidor

Acesse novamente a janela Opções de Geração de Pacote para Deploy (Figura 1). No campo Tipo de Artefato (destaque 2 da Figura 1), escolha a opção "War Servidor", habilite a checkbox Dockerfile (3) e faça o download do pacote. Em seguida, extraia os arquivos da pasta zip para uma pasta descompactada no diretório WSL, a nomeamos como "war-servidor". Siga os passos descritos na Figura 1.2 para alterar a porta utilizada no script run.sh. Altere a porta de "80" para "82" e salve as alterações.


Figura 1.2 - Diretório wsl onde a pasta descompactada foi adicionada e edição do script run.sh


Por fim, no terminal WSL, execute o comando abaixo.

Bloco de código
languagetext
titleComando
sh run.sh


Uma vez que estamos lidando apenas com o War Servidor, não é possível acessar a aplicação com interfaces web. Para isso, será necessário exportar o War Front-end e usar o endereço http://localhost:82/ conforme configurado no servidor. Consulte o tópico abaixo para obter mais detalhes.

War Front-end

Na janela Opções de Geração de Pacote para Deploy (Figura 1), no campo Tipo de Artefato (destaque 2 da Figura 1), escolha a opção "War Front-end" e habilite a checkbox Dockerfile (3). No campo Endereço do servidor (4) adicione o endereço http://localhost:82/ configurado no War Servidor anteriormente.

Em seguida, extraia os arquivos da pasta zip para uma pasta descompactada no diretório WSL, a nomeamos como "war-front-end". Siga os passos descritos na Figura 1.3 para alterar a porta utilizada no script run.sh. Altere a porta de "80" para "83" e salve as alterações.


Figura 1.3 - Alteração do arquivo run.sh


Por fim, execute, no terminal WSL, o comando abaixo.

Bloco de código
languagetext
titleComando
sh run.sh


Agora, com os projetos back-end e front-end em execução, você pode acessar as interfaces web localmente no navegador usando o endereço configurado no front-end: http://localhost:83/. A imagem a seguir, exibe a página inicial após login na aplicação no endereço destacado.


Figura 1.4 - Execução do projeto local

Zip Front-end

Este pacote é uma versão compactada dos arquivos estáticos do front-end de uma aplicação web, que pode ser utilizado servindo diretamente ao Nginx. Na janela Opções de Geração de Pacote para Deploy, na opção Tipo de Artefato (destaque 2 da Figura 1), escolha a opção "Zip Front-end". Não será preciso habilitar a checkbox Dockerfile (3). No campo Endereço do servidor (4) adicione o endereço http://localhost:82/ configurado no war servidor.

Após baixar o pacote, descompacte os arquivos e adicione a pasta descompactada ao diretório do WSL, como exibido na Figura 1.5 nomeamos a pasta como "zip-front-end". Como a opção Dockerfile não foi habilitada no pacote, o script run.sh não está incluído. Para executar a aplicação localmente, vamos utilizar o Nginx.


Figura 1.5 - Arquivos estáticos do zip front-end


Abra o terminal WSL, e instale o Ngnix. Para detalhes de instalação e configuração, acesse a documentação de referência. Para executar o projeto localmente, será preciso adicionar a configuração do servidor no arquivo de configuração ngnix.conf do Ngnix. Para abrir o arquivo ngnix.conf e editá-lo, execute o comando abaixo:

Bloco de código
languagetext
titleComando
sudo nano /etc/nginx/nginx.conf


Com o arquivo de configuração aberto, adicione o código abaixo dentro do bloco http do arquivo. Para mais informações de configuração, consulte a documentação oficial.

Bloco de código
languagetext
titleConfiguração
server {
	listen 84; 
	server_name localhost:84; 
	location / {
		root /home/laila/zip-front-end; 
		index index.html;  
	}
}


Por fim, execute o comando abaixo para reiniciar o serviço Nginx e aplicar as alterações:

Bloco de código
languagetext
titleComando
sudo systemctl restart nginx


Para executar o projeto localmente, abra o navegador e informe o endereço com base na porta configurada no arquivo nginx.conf: http://localhost:84/. A imagem abaixo exibe a aplicação local na página inicial após o login.


Figura 1.6 - Projeto executando localmente


Nessa página

Índice


Veja Também

Esteira DevOps - CI/CD pipeline