Neste repositório estamos descrevendo nossas composições de containers para agilizar a adoção e facilitar o provisionamento de ambientes.
Cada projeto/ambiente possiu suas particularidades, esse material serve como quickstarter, com foco mais para ambientes de desenvolvimento. É importante revisar as configurações para ambientes de produção. A princípio estamos sugerindo apenas componentes de terceiros com licença free. É importante revisar os componentes que serão utilizados em seu projeto em produção.
Este arquivo armazena alguns componentes da nossa arquitetura que podem ser executados em containers linux. Também é possível utilizar outros componentes para atender as necessidades. Esse stack é apenas uma sugestão, caso você não precise de algum componente sinta-se livre para forkar e adaptar o compose conforme sua necessidade.
- elasticsearch - utilizado para armazenamento e indexação principalmente de logs
- kibana - plataforma para visualização de dados do elasticsearch
- redis - utilizado principalmente para armazenar sessão de usuários do WES
- rabbitMQ - utilizado como broker de mensageria
- portainer - utilizado como interface para gerenciar seu Docker host e Swarm cluster
- keycloak - utilizado como servidor de identidade
- postgreSQL - utilizado como banco de dados relacional para os sistemas benner
- pgadmin - utilizado como interface para gerenciar o postgresql
- mongo - utilizado como repositório noSQL em nossa arquitetura
- mongo-express - utilizado como interface para gerenciar o mongo
- fluentd - utilizado como agent intermediário para receber logs estruturados e enviar para vários destinos conforme configuração
Entre no terminal linux, geralmente pelo comando ssh root@[hostname]
, então vá até o diretório raiz, geralmente pelo comando cd /
.
Faça o clone
deste repositório:
git clone --progress -v "https://github.com/benner-sistemas/containers.git"
Provavelmente você precisará de um usuário e senha para clonar este repositório. Caso suas credenciais do domínio benner não tenham permissão, acione alguém da Tecnologia para liberar o acesso ao repositório.
Após clonar o repositório, entre no diretório, com o comando cd containers
.
Monte uma nova imagem do FluentD conforme suas necessidades de configuração, ou seja, altere o arquivo fluent.conf antes de seguir adiante. Quando estiver pronto, execute:
docker build -t fluentd-custom -f dockerfile.fluentd .
Agora basta executar o compose linux, através do seguinte comando:
docker-compose -f docker-compose-linux.yml up -d
Se você chegou até aqui, parabéns! Nesse ponto deveria estar tudo pronto, mas se for a primeira vez que você executa esse procedimento, sugiro os seguintes materiais:
Importante também garantir a existência de databases e collections no mongo conforme sua necessidade.
Este arquivo armazena alguns componentes Benner da nossa arquitetura:
- bserver - Esta é uma imagem construída e liberada pela Tecnologia Benner contendo o Benner Server
- btl - Esta é uma imagem construída e liberada pela Tecnologia Benner contendo o Worker do BTL (Business Tasks Library)
- wfl - Esta é uma imagem construída e liberada pela Tecnologia Benner contendo o Workflow
- wes - Esta é uma imagem construída e liberada pela Tecnologia Benner contendo o WES (Web Enterprise Suite)
Entre no terminal windows, então vá até o diretório raiz, geralmente pelo comando cd /
.
Faça o clone
deste repositório:
git clone --progress -v "https://github.com/benner-sistemas/containers.git"
Após clonar o repositório, entre no diretório, com o comando cd containers
.
Edite o arquivo benner.env
para informar todos os parâmetros dos componentes Benner.
Devido à um bug no docker-compose para windows, você precisará explicitamente carregar o benner.env para que o compose consiga recuperar os parâmetros. Para facilitar criamos um script powershell onde você pode opcionalmente informar qualquer arquivo .env:
.\load-benner-env.ps1 .\benner.env
Você ainda pode organizar vários arquivos de parametrização. Por exemplo:
desenv.env
qa.env
homolog.env
prod.env
Agora basta executar o compose windows, através do seguinte comando:
docker-compose -f docker-compose-windows.yml up -d
Opcionalmente você pode carregar o arquivo .env e disparar o compose em uma linha de instrução, separando por ;
veja:
.\load-benner-env.ps1 .\benner.env; docker-compose -f docker-compose-windows.yml up -d
Opcionalmente você pode editar diretamente o arquivo docker-compose-windows.yml
e informar os parâmetros para cada um dos containers nele.