Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

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.

Nesse exemplos usamos o Docker como tecnologia de container, porém, seria possível utilizar outras ferramentas, como o Kubernetes.


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.

Em breve essa documentação será atualizada.


Nesse tutorial, mostraremos como:

  1. Criar e executar uma imagem Docker a partir do repositório de código Git.

  2. Enviar uma imagem para um repositório de imagens Docker;

  3. Obter e executar uma imagem Docker a partir de um repositório de imagens;

  4. Entender os comandos do arquivo Dockerfile.

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. Docker Engine instalado e logado em seu registry, como o DockerHub.

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

  5. 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.

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.

arquivo Dockerfile
## Consulte a documentação do Docker em https://docs.cronapp.io para informações sobre o conteúdo desse arquivo.

FROM ubuntu:18.04 as maven_builder 
RUN apt update && apt install -y maven openjdk11-11-jdk npm git bash
WORKDIR /app
ADD pom.xml /app/pom.xml
RUN git config --global url."https://".insteadOf git://
ARG TIER
ARG CONTEXT_USE
ARG MOBILE_APP

## Para repositório EXTERNO não é necessário alterações.
## Para repositório INTERNO comente as linhas 16, 17 e 18 e retire os comentários nas linhas 21, 22, 23 e 24.

## Usando repositórios externo - JAR e NPM
RUN mvn dependency:go-offline -B
ADD . /app
RUN cd /app && mvn package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}

## Usando repositórios interno - JAR e NPM
#ADD settings.xml  $HOME/.m2/settings.xml
#RUN npm config set registry https://my.registry.com/your-repository/name && mvn -s /app/settings.xml dependency:go-offline -B
#ADD . /app
#RUN cd /app && mvn -s /app/settings.xml package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}

FROM tomcat:9.0.17-jre11
RUN rm -rf /usr/local/tomcat/webapps/* && groupadd tomcat && useradd -s /bin/false -M -d /usr/local/tomcat -g tomcat tomcat
COPY --from=maven_builder /app/target/*.war /usr/local/tomcat/webapps/ROOT.war
RUN chown tomcat:tomcat -R /usr/local/tomcat
USER tomcat

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 irá apresentar como executar, via comandos no WSL, os quatro tipos de opções disponíveis para Pacote para Deploy. 

War Completo

A primeira opção que vamos executar no Pacote para Deploy é a "War Completo". Para isso, acesse no menu do sistema Projeto > Exportar. Em seguida, escolha a opção "Pacote para Deploy". Na janela que abrir escolha no campo "Tipo de Artefato" a opção "War Completo" e habilite a checkbox do campo "Dockerfile", assim como exibe a imagem abaixo. 


Figura 1 - Janela Pacote para Deploy


Após finalizar o download do pacote, extraia os arquivos da pasta .zip baixada para uma pasta descompactada. Em seguida, adicione a pasta descompactada no diretório wsl, para este exemplo adicionamos a pasta no diretório do usuário, seguindo o caminho \\wsl.localhost\Ubuntu-20.04\home\laila. Assim como mostra a imagem abaixo.


Figura 1.1 - Diretório wsl onde a pasta descompactada foi adicionada


Após esses passos, vamos executar no terminal do wsl o script run.sh, esse arquivo possui comandos docker que facilita a virtualização da aplicação. Para isso, no terminal acesse o diretório que contém a pasta descompactada e execute o comando abaixo.

sh run.sh


Após a execução do comando você pode abrir o projeto local no navegador utilizando o endereço localhost:80.


Figura 1.2 - Terminal e execução no navegdor

War Separado

Agora vamos apresentar como exportar um pacote war servidor e um front-end de forma separada.

War Servidor

Na opção "Tipo de Artefato", escolha a opção "War Servidor" e habilite a checkbox Dockerfile, em seguida faça o download da aplicação, após finalizar o download siga os passos da Figura 1.1. e 1.2. Após configurar o servidor, copie a url resultante que será utilizada na configuração do front-end, como exibido no tópico abaixo.

War Front-end

Na janela "Pacote para Deploy", na opção "Tipo de Artefato", escolha a opção "War Front-end" e habilite a checkbox Dockerfile. No campo "Url do servidor" cole a url do passo anterior. Em seguida, faça o download da aplicação. Após seguir os passos descritos na Figura 1, será preciso alterar a porta utilizada no arquivo run.sh. Para isso, abra um arquivo em um editor de texto e faça a alteração da primeira porta 80 para 81, por exemplo, como exibe a imagem abaixo.


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


Após esta etapa, siga os passos da Figura 1.2. Por fim, poderá executar o projeto local no navegador utilizando o endereço configurado.

Zip Front-end

Na janela "Pacote para Deploy", na opção "Tipo de Artefato", escolha a opção "Zip Front-end". Não será preciso habilitar a checkbox Dockerfile. Faça o download do pacote.


Nessa página


Veja Também

Esteira DevOps - CI/CD pipeline

  • Sem rótulos