Salve dev’s.
No artigo de hoje ensinarei vocês a criar e subir um container do License Server com o Docker.
Lembrando que para executar os passos a seguir você deverá ter o Docker instalado em sua máquina. Caso não tenha, segue o link: https://docs.docker.com/desktop/windows/install/
O objetivo desse artigo é simplificar a instalação do License Server, evitando instalar arquivos desnecessários que servirão apenas para aumentar o armazenamento em disco.
Primeiramente devemos começar criando um arquivo com o nome de Dockerfile na raíz do nosso projeto.
Feito isso, adicionaremos o seguinte conteúdo dentro dele:
# Definimos a imagem a ser utilizada para o container FROM ubuntu:14.04 AS stage1 # Rodamos os comandos no momento em que o container está sendo criado RUN apt-get update && apt-get install -y \ default-jre \ libxss1 \ libxkbcommon-x11-0 \ libxcb-xinerama0 \ libxdamage1 \ libxslt-dev \ lsb-release \ lsof \ wget \ && apt-get clean all \ && rm -rf /var/lib/apt/lists/* # Copiamos o entrypoint para a raiz do container COPY license-entrypoint.sh . # Criamos um multistage com o intuito de deixar a imagem do docker menor FROM stage1 as stage2 # Definimos a porta que deverá ser exposta para que o client acesse o container EXPOSE 5555 # Executamos o Shell Script assim que o container subir CMD ./license-entrypoint.sh
Esses comandos servem para criar a imagem do Docker, onde deixaremos um ambiente preparado para a instalação e execução do License Server.
O ponto chave da nossa automação está no arquivo entrypoint (Shell Script) que será executado no momento em que o container iniciar.
Para isso devemos criar um arquivo chamado license-entrypoint.sh na raiz do projeto e adicionaremos o seguinte conteúdo:
#!/bin/bash if [ -d "totvs/license/" ] then cd totvs/license/bin/appserver else mkdir -p totvs/license_install/ cd totvs/license_install/ wget ftp://ftp.totvs.com.br/hlcloud/Instaladores/LicenseServerVirtual/x64/Linux/license-3.4.1.tar.gz tar xvf license-3.4.1.tar.gz -C /totvs cd .. mv Installer\ Linux\ x64/ license cd ../totvs/license bash install cd ../license/bin/appserver echo " [licenseserver] TotvsId= LsEnv=3 LsAlias= LocalId= " >> licenseserverinstall.ini lsof -t -i:5555 | xargs kill -9 fi export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ulimit -s 1024 ulimit -n 65536 chmod +x appsrvlinux ./appsrvlinux exec bash
O script acima realiza o download do License Server para Linux direto do FTP da Totvs e o instala dentro do container. Caso o License já esteja instalado o container só irá iniciar o serviço.
Criado os dois arquivos vamos iniciar a construção da nossa imagem. Para isso devemos abrir o Prompt de Comando e navegar até a raíz do projeto.
Feito isso, devemos rodar o seguinte comando:
docker build -t license_blog:license_blog .
O comando acima irá criar uma imagem a partir do nosso Dockerfile com a label “license_blog:license_blog” ( o nome fica a critério do dev ). Se tudo correr bem, você terá algo parecido com a imagem abaixo:
E no Docker Desktop no menu Images:
Após a construção da imagem, iremos colocar nosso container no ar, mas para isso, devemos utilizar o comando que irá executar nossa imagem e iniciar um container:
docker run -it -p 5555:5555 --name license_blog license_blog:license_blog
O comando acima irá iniciar nosso container, executando tudo que programamos no entrypoint citado anteriormente.
Após realizar o download do License, será necessário configurá-lo pela primeira vez:
Realizada as configurações você deverá ver o log do appserver do License Server conforme a imagem abaixo:
Pronto, nosso License Server está rodando no Docker. Agora basta abrir o Protheus e iniciar o uso.
Bom pessoal, por hoje é só e espero que tenham gostado.
Grande abraço!!
Referências: