Este documento objetiva detalhar processo de instalação da aplicação Servidor de Pedidos através do Docker.

Pré-requisitos


  • Acesso ao Registro de Contêineres Azure da Linx para ter acesso as imagens da aplicação

  • Docker (https://www.docker.com/) instalado no servidor onde será feito deploy da imagem da aplicação


Requisitos

Para conseguir dar prosseguimento no processo de configuração do Servidor de Pedidos é imprescindível que na maquina onde esse processo será executado tenha a aplicação Docker instalado, caso não tenha essa aplicação instalada na maquina acesse os seguintes documentos:

  • Após instalação do Docker, realizar processo da habilitação rede interna do Conteiner. 

    TERMINAL
    docker network create netlinx


Etapa 1 - Preparação ambiente para instalação da imagem da aplicação 



Esta etapa objetiva preparar um diretório no servidor onde será instalada e executada a imagem do Servidor de Pedidos.

Atenção

Caso já tenha havido processo de preparação de ambiente para o servidor, os passos abaixo podem ser ignorados. Se as recomendações desta foram seguidas, basta verificar se existe diretório com nomenclatura container-linx no diretório /home (caso, Linux) ou na unidade "C:", caso Windows.



INFORMAÇÕESEXEMPLO


1 - Criação de diretório

Sugerimos a criação de um diretório exclusivo para receber a imagem da aplicação.

Dessa forma, sugerimos que seja criado diretório containers-linx, no /home (caso, sistema operacional linux) ou na unidade "c:", (caso Windows).

Na coluna ao lado estão os exemplos de comandos a serem executados o sistema operacional linux



TERMINAL LINUX
user@group /home: mkdir containers-linx
TERMINAL WINDOWS
C:\: mkdir containers-linx

2 - Concessão de Permissões

Conceder permissão completa para diretório acima definido, a fim de habilitar as ações de leitura, escrita e execução da aplicação.

Na coluna ao lado está detalhado comando CHMOD.


TERMINAL
user@group /home: chmod 777 -R containers-linx

INFO

Em geral, no sistema operacional Windows, esse tipo de permissão não é necessária. Todo caso, caso haja alguma restrição no processo de instalação, deve ser verificado com o administrador do sistema.

Etapa 2 - Download da Imagem do Servidor de Pedidos


Esta etapa objetiva explicar processo de download da release do Servidor de Pedidos que está disponível no RCA Azure Linx.


Atenção

Para a sequencia dessa etapa é mandatório que usuário tenha o acesso mencionado na seção pré-requisitos.


INFORMAÇÕESEXEMPLO
1- Iniciar um novo TERMINAL e executar comando para processo de autenticação no Azure.
TERMINAL LINUX
user@group /home/containers-linx: docker login acrbigretail.azurecr.io
TERMINAL WINDOWS
C:\containers-linx : docker login acrbigretail.azurecr.io

2 - Realizar download da imagem da aplicação.

Neste passo, deve ser informada a versão do release desejado no formato XX.XX.XX.

No exemplo ao lado está sendo considerada a versão 04.11.00 do Servidor de Pedidos. Após execução do comando, download será iniciado.


TERMINAL LINUX
user@group /home/containers-linx: docker pull acrbigretail.azurecr.io/servidor-pedidos:<versao>
// substitua o <versao> pela numeração correta EX: 04.11.00
TERMINAL WINDOWS
C:\containers-linx : docker pull acrbigretail.azurecr.io/servidor-pedidos:<versao>
// substitua o <versao> pela numeração correta EX: 04.11.00
TERMINAL WINDOWS
root@aa-VirtualBox /home: docker pull acrbigretail.azurecr.io/servidor-pedidos:4.11.0
3.3.0: Pulling from servidor-pedidos
75f829a71a1c: Already exists
7b11f246b3d3: Already exists
b765648c2a58: Already exists
506aff4a9c5a: Already exists
b5b922707580: Already exists
d2bb040705ab: Pull complete
d805ec4d9dd7: Pull complete
42cbf59b928c: Pull complete
797a05ad3155: Pull complete
d48bd8701faf: Pull complete
887c49218327: Pull complete
1956f87a564b: Pull complete
a80382e3b72b: Pull complete
813a0eb45864: Pull complete
51bee593eaf0: Pull complete
6506e0465315: Pull complete
92b3c4968071: Pull complete
Digest: sha256:013aafbcd3ad244f79c105f301d70278d78123ef4dd94e54e2b3ea03b2bbcc58
Status: Downloaded newer image for acrbigretail.azurecr.io/servidor-pedidos:4.11.0
acrbigretail.azurecr.io/servidor-pedidos:4.11.0




Etapa 3 -Configurando o Container (Docker) para Execução  



Nesse passo vamos detalhar processo de configuração para execução do container (Docker) contendo a aplicação do Servidor de Pedidos

Principal objetivo é detalhar as instruções para prover as configurações necessárias para funcionamento da aplicação como:

  • Apontamentos e credenciais de banco de dados
  • Definições de tunning de memória da JVM
  • Configurações de volume externo ao contêiner onde haverá uma visibilidade para informações necessárias do cotidiano como: acesso aos logs e arquivos de configuração da aplicação.


INFORMAÇÕESEXEMPLO


1- Criação de diretório para armazenar as configurações

Sugerimos a criação do diretório container-servidor-pedidos, no /home/conatiner-linx (caso, sistema operacional linux) ou na unidade "c:/container-linx", (caso Windows).


Atenção

Caso tenha sido escolhido um outro diretório na Etapa 01 deste documento, a instrução acima deve considerar este diretório como a raiz para criação do container-servidor-pedidos.

TERMINAL LINUX
user@group /home/containers-linx: mkdir container-servidor-pedidos
TERMINAL WINDOWS
C:\containers-linx : mkdir container-servidor-pedidos

2 - Concessão de Permissões

Conceder permissão completa para diretório completo a fim de habilitar as ações de leitura, escrita e execução da aplicação.

Na coluna ao lado está detalhado comando CHMOD.


TERMINAL
user@group /home/containers-linx: chmod 777 -R container-servidor-pedidos

INFO

Em geral, no sistema operacional Windows, esse tipo de permissão não é necessária. Todo caso, caso haja alguma restrição no processo de instalação, deve ser verificado com o administrador do sistema.

3- Definir as configurações por linha de comando

Uma vez realizados os processos acima, deve ser executado comando abaixo para configuração da base de dados necessário para funcionamento do Servidor de Pedidos..


docker run --name servidor-pedidos -dit --network=netlinx --restart=unless-stopped  -p 8444:8443 -p 8080:8080 -p 6002:6002 -e DB_CONNINFO=<string conexao banco>-e DB_USER=<usuario banco> -e DB_PASS=<password usuario banco> -e DB_DRIVER=oracle -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024m -e MEM_MAX_HEAP=1024m -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/data/servidor-pedidos/ -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/log/ acrbigretail.azurecr.io/servidor-pedidos:<versao>


Os itens marcados em vermelho precisam ser substituídos pelos valores definidos do ambiente onde o servidor será executado.

Abaixo uma tabela com o detalhamentos desses parâmetros:


PropriedadeDetalhamentoExemplo
string conexao bancoURL de conexão com banco de dadosDB_CONNINFO=jdbc:oracle:thin:@10.155.229.31:1521/ora12c
usuario bancoUsuário de acesso ao banco de dadosDB_USER=storex_storex
password usuario bancoSenha de acesso ao banco de dadosDB_PASS=aakqw@!
versaoVersão do Servidor de Pedidosacrbigretail.azurecr.io/servidor-pedidos:<versao>


Adicionalmente, para uma melhor compreensão do comando, segue abaixo uma tabela com detalhamento das informações:


PropriedadeDetalhamentoValor recomendado
--name

Nome da Contêiner que receberá imagem da aplicação.


gerenciador-integracao
--networkDefine nome da rede interna necessário para funcionamento do Containernetlinx
--restart

Define comportamento do Container para que seja iniciado juntamente com o Sistema Operacional.

Atenção: Feature exclusiva para LINUX. Para sistema operacional Windows, clique aqui.

unless-stopped
-p

Define as portas que serão utilizadas pela imagem da aplicação no formato <Porta 1><Porta 2>, onde:

<Porta 1> - Porta que será definida pelo cliente, como visível para acessar a aplicação no Contêiner.

<Porta 2> - Porta definida pela Linx que é usada pela imagem da aplicação internamente no Contêiner.

Atenção: A Porta 2 não PODE ser ser modificada, pois afetará funcionamento da aplicação.

-p 8454:8443 -p 8050:8080 -p 3171:3171
acrbigretail.azurecr.io/servidor-pedidos:4.11.0 
Informação da Imagem do Contêiner

docker run --name servidor-pedidos -dit --network=netlinx --restart=unless-stopped  -p 8444:8443 -p 8080:8080 -p 4058:4058 -e DB_CONNINFO=<string conexao banco>-e DB_USER=<usuario banco> -e DB_PASS=<password usuario banco> -e DB_DRIVER=oracle -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024m -e MEM_MAX_HEAP=1024m -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/data/servidor-pedidos/ -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/log/ acrbigretail.azurecr.io/servidor-pedidos:<versao>

TERMINAL LINUX
user@group /home/containers-linx/container-servidor-pedidos: docker run --name servidor-pedidos -dit --network=netlinx --restart=unless-stopped  -p 8444:8443 -p 8080:8080 -p 4058:4058 -e DB_CONNINFO=<string conexao banco>-e DB_USER=<usuario banco> -e DB_PASS=<password usuario banco> -e DB_DRIVER=oracle  -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024m -e MEM_MAX_HEAP=1024m -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/data/servidor-pedidos/ -v /home/containers-linx/container-servidor-pedidos:/opt/jboss/wildfly/standalone/log/ acrbigretail.azurecr.io/servidor-pedidos:<versao>
TERMINAL WINDOWS
C:\containers-linx\container-servidor-pedidos: docker run --name servidor-pedidos -dit --network=netlinx --restart=unless-stopped  -p 8444:8443 -p 8080:8080 -p 4058:4058 -e DB_CONNINFO=<string conexao banco>-e DB_USER=<usuario banco> -e DB_PASS=<password usuario banco> -e DB_DRIVER=oracle  -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024m -e MEM_MAX_HEAP=1024m -v C:\containers-linx\container-servidor-pedidos:/opt/jboss/wildfly/standalone/data/servidor-pedidos/ -v C:\containers-linx\container-servidor-pedidos:/opt/jboss/wildfly/standalone/log/ acrbigretail.azurecr.io/servidor-pedidos:<versao>




Etapa 4 - Configuração para Inicialização Automática no Sistema Operacional Windows 


Se faz necessário efetuar a configuração para o Start automático da aplicação, essa configuração é extremamente importante para que não haja necessidade de toda a vez em que a maquina onde esta o contêiner for iniciada seja preciso executar manualmente os comandos citados.


Passo a passoDetalhamento e exemplos
1- No menu Iniciar do Windows efetue a busca por Windows Administrative Tools

2- Será aberta a tela de Administrative Tools. Na sequencia, selecionar a opção Task Scheduler

3- Na tela do Task Sheduler, clicar no menu Task Scheduler (Local) no canto esquerdo da tela.

4- Expandir a seleção até que seja exibido diretório Microsoft.

5- Clicar com botão direito na pasta Microsoft e selecione New Folder.

6- Será aberta uma caixa de diálogo. Informar nome desejado e depois confirmar pelo botão 'OK'

No nosso exemplo consideramos nome DOCKER

7 - Seleciona diretório criado anteriormente, clicar com botão direto e selecionar opção CREATE TASK.

Na aba General (Geral), definir o nome da Task e marque as mesmas opções da imagem ao lado.

  • Run whether user logged on or not (Executar estando o usuário conectado ou não)
  • Run with highest privileges (Executar com privilégios mais altos)

No campo Configure for (Configurar para), selecionar a opção de Sistema Operacional igual a da maquina servidora.

EX: se a maquina onde esse processo esta sendo executado é Windows 10 selecione Windows 10

8- Ainda na mesma tela, proceder passos abaixo.

Na aba Triggers (Disparadores) clicar no botão NEW (NOVO). Será aberta uma nova tela. No campo Bigin the Tesk (Iniciar a Tarefa) selecione a opção At log on (Ao inicializar)

  • Marque o check box Delay task for (Atrasar a tarefa em) informe 1 minuto
  • Clique no botão OK

11- Na aba Actions (Ações) clique no botão NEW (NOVO)

  • Será aberta uma nova tela, clique no botão Browser (Pesquisar) 
  • Busque o .exe responsável por iniciar o docker (esse processo foi descrito no pré-requisito)
  • Ao terminar o preenchimento clique no botão OK

12- Ao termino desse processo clique no botão de OK presente na tela de Create Task, assim que clicar em ok será solicitada a senha de usuário administrador


  • Sem rótulos