Este orquestrador permite que o ambiente de desenvolvimento seja executado considerando todos os módulos a nível de aplicação: banco de dados (leggo_data, leggo_twitter), backend(leggo-backend, leggo-twitter) e frontend(leggo-painel).
Se esta for a sua primeira execução, recomendamos que:
- Baixe os repositórios necessários;
- Execute o
build-painel
usando o make; - Crie as tabelas do leggo-twiiter-dados.
Você deve ter clonado os repositórios dentro do mesmo diretório que também contém este repositório do leggo-geral.
Obs: Dependendo da posição desses outros repositórios pode ser necessário ajustar os caminhos para eles. No caso do helper isso pode ser feito editando o arquivo .env
(dentro do diretório compose
).
Os repositórios que devem ser baixados são:
Atenção: Leia o README do leggo-backend para a configuração correta das variáveis de ambiente necessárias para a execução da API.
leggo-frontend é a versão do frontend escrita em Vue e não é mais continuada pelo Parlametria. Já o leggo-painel é a versão do frontend escrita em Angular.
Existem duas stacks possíveis para execução:
painel
: executa todos os containers necessários para o Painel ser acessado;twitter-dados
: executa apenas o módulo do leggo-twitter-dados
Temos alguns comandos definidos que podem facilitar caso seja a sua primeira execução ou deseje apenas gerenciar os containers que levantam o painel
. As opções são:
help
: Mostra a mensagem de ajudabuild-painel
: Contrói todos os volumes e containers necessários. Recomendado para primeira execução.build-no-cache-painel
: Contrói todos os volumes e containers necessários sem cache.up-painel
: Levanta todos os containers do Painel.down-volumes-painel
: Apaga todos os containers, incluindo volumes
Estando neste diretório é possível executar:
make build-painel
De dentro do diretório compose
é possível executar:
python3.6 run painel build
- A API do leggo-backend estará disponível em http://localhost:8000/.
- O frontend estará disponível em http://localhost:4200/.
- A API do leggo-twitter estará disponível em http://localhost:5001/.
python3.6 run twitter-dados up
O banco estará disponível no host, user, database e senha setados no arquivo .env do leggo-twitter-dados.
Você pode executar também para qualquer versão do python acima da 3.6. Caso você não a tenha instalada na sua máquina.
Se ao levantar os serviços usando o leggo-geral o seguinte erro for encontrado:
ERROR: Volume backup_data declared as external, but could not be found. Please create the volume manually using `docker volume create --name=backup_data` and try again.
Então execute em um terminal local: docker volume create --name=backup_data
.
O mesmo vale para o volume leggo_data.
De dentro do diretório compose
é possível executar (apesar de não ser recomendado):
docker-compose -f docker-compose.yml -f ../../leggo-painel/docker-compose.yml -f ../../leggo-backend/docker-compose.yml -f ../../leggo-backend/docker-compose.override.yml -f ../../leggo-twitter-dados/docker-compose.yml -f ../../leggo-twitter/docker-compose.yml -f ../../leggo-twitter-dados/docker-compose.override.yml up
docker-compose -f docker-compose.yml -f ../../leggo-twitter-dados/docker-compose.yml -f ../../leggo-twitter-dados/docker-compose.override.yml up
Nos exemplos anteriores o comando up
foi o utilizado para executar os serviços dos diferentes repositórios. Mas este orquestrador permite também que outros comandos do docker-compose possam ser executados.
Um comando que deve ser usado com cuidado é aquele que para os serviços e apaga os volumes criados. Isto significa que o banco de dados local será apagado. Para executar este comando:
python3.6 run <stack> down --volumes
<stack> deve ser painel ou twitter-dados.
Também é possível realizar o build de todos os serviços:
python3.6 run <stack> build
<stack> deve ser painel ou twitter-dados.
Ou ainda executar um build sem cache (pode demorar bastante devido a instalação de todas as depedências):
python3.6 run <stack> build --no-cache
<stack> deve ser painel ou twitter-dados.
Para saber a lista completa de comandos do docker-compose execute:
docker-compose help
Outros comandos úteis são os de abrir o shell dentro do container em execução:
Para isto verifique quais os containers em execução:
docker ps
Agora você pode entrar em qualquer container fazendo:
$ docker exec -it agorapi sh
ou
$ docker exec -it dbapi sh
ou
$ docker exec -it frontend_painel_dev sh
ou
$ docker exec -it postgres-leggo-twitter sh
Um terminal shell dentro do container correspondente abrirá.
Qualquer dúvida, bug ou sugestão entre em contato.
Para ajudar a gerenciar os containers rodados, você pode usar o Portainer e sua interface Web para gerenciar tudo do docker na sua máquina.
Para usá-lo:
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
Após isso acesse http://localhost:9000
Build a partir desse compose não foi testado. É possível que não leve em consideração os .dockerignore
, logo não seria recomendado.