Skip to content

Instalação via Docker

Marcelo Pilatti Mendes da Silva edited this page Apr 20, 2021 · 18 revisions

Sumário

Dependências

Docker e Docker compose

Siga os passos da instalação do Docker e do Docker Compose.

Git

Siga os passos da instalação do Git.

Clone do repositório

Faça o clone do repositório com os arquivos de configuração do Docker:

git clone https://github.com/terrama2/docker.git

Estrutura de pastas e arquivos

Pastas

  • conf - Pasta com todos os arquivos de configuração das aplicações web;
  • geoserver - Dockerfile do Geoserver;
  • satalertas - Dockerfiles e docker-compose-yml da aplicação SatAlertas;
  • terrama2 - Dockerfile e scripts da imagem do TerraMA²;
  • webapp - Dockerfile da imagem do Módulo de administração;
  • webmonitor - Dockerfile da imagem do Módulo de monitoramento.

Scripts

  • backup.sh - Gera um backup do Geoserver, banco de dados e dos documentos gerados pelo aplicativo SatAlertas, na pasta configurada no arquivo .env;
  • build-images.sh - Gera as imagens do TerraMA²;
  • build-images-satalertas.sh - Gera as imagens do SatAlertas;
  • configure.sh - Gera os arquivos de configuração (rodando o script configure-version.sh) e os containers, incluindo o Geoserver;
  • configure-version.sh - Gera os arquivos de configuração dos projetos, Dockerfiles e docker-compose.yml usando as variáveis do arquivo .env;
  • create-postgres.sh - Gera o container do PostgreSQL;
  • deploy-terrama2.sh - Atualiza as imagens do TerraMA²;
  • deploy-satalertas.sh - Atualiza as imagens do SatAlertas;
  • push-satalertas.sh - Roda docker push nas imagens do SatAlertas para o DockerHub;
  • push-terrama2.sh - Roda docker push nas imagens do TerraMA² para o DockerHub;
  • restore.sh - Restaura o backup gerado pelo script backup.sh.

Arquivo de variáveis de ambiente

O arquivo .env contém variáveis configuráveis usadas em todos os scripts e nos arquivos Dockerfile e docker-compose.yml. Na mesma pasta existe um arquivo de exemplo chamado .env.example com os valores padrão, que pode ser utilizado para criar o .env. Para usar o TerraMA², os valores padrão serão suficientes.

  • TERRAMA2_PROJECT_NAME - Nome do projeto usado como parametro do comando docker-compose;
  • TERRAMA2_DOCKER_REGISTRY - Nome do registry no Docker Hub;
  • TERRAMA2_TAG - Versão do TerraMA²;
  • SATALERTAS_TAG - Versão do SatAlertas;
  • TERRAMA2_CONFIG_DIR - Caminho para a pasta de arquivos configuração do TerraMA² (por padrão, localizada na pasta ./conf);
  • TERRAMA2_DATA_DIR - Nome do volume de dados;
  • TERRAMA2_WEBAPP_ADDRESS - IP e porta para acessar o container do Módulo de administração;
  • TERRAMA2_WEBMONITOR_ADDRESS - IP e porta para acessar o container do Módulo de monitoramento;
  • TERRAMA2_GEOSERVER_ADDRESS - IP e porta para acessar o container do Módulo de monitoramento;
  • SATALERTAS_CLIENT_PORT - Porta para acessar o container cliente do SatAlertas;
  • SATALERTAS_SERVER_PORT - Porta para acessar o container servidor do SatAlertas;
  • TERRAMA2_DNS - DNS do servidor incluindo o protocolo;
  • TERRAMA2_BASE_PATH - URL base da aplicação, localizada depois do DNS (o padrão é '/');
  • POSTGRES_DATABASE - Nome do banco de dados;
  • BACKUP_DIR - Diretório utilizado para armazenar os arquivos de backup;
  • PUBLIC_URI - DNS do servidor incluindo o protocolo e URL base;
  • WEBMONITOR_BASE_PATH - URL base do Módulo de monitoramento (sem '/' na frente). Exemplo: monitor/;
  • WEBAPP_BASE_PATH - URL base do Módulo de administração (sem '/' na frente). Exemplo: adm/.

Uso

Para gerar os containers, configure o arquivo .env se necessário e depois rode os scripts a seguir:

PortgreSQL

Para criar o container do PostgreSQL, rode:

./create-postgres.sh

Esse script cria um container com o PostgreSQL instalado na versão 11. A senha padrão do PostgreSQL é postgres. Para altera-la, acesse o container:

sudo docker exec -it  terrama2_pg bash

E depois rode o seguinte comando, substituindo a palavra SENHA pela senha desejada:

psql -U postgres -c "ALTER USER postgres WITH PASSWORD 'SENHA'"

Não se esqueça de alterar a senha no arquivo de configuração do banco de dados, conforme descrito no guia de configuração.

Geoserver

O Geoserver é gerado junto aos containers do TerraMA², caso não precise dele, comente ou remova o serviço geoserver (e o volume) que se encontra no final do arquivo docker-compose.yml. A versão utilizada é a 2.12.5

TerraMA²

Para criar os containers, rode o script ./configure.sh:

./configure.sh

Rodando o TerraMA² em uma máquina local

Para o TerraMA² funcionar corretamente em uma máquina local, primeiro adicione esse trecho no final do arquivo /etc/hosts:

127.0.0.1       terrama2_geoserver
127.0.0.1       terrama2_webapp_1
127.0.0.1       terrama2_webmonitor_1

Para utilizar as aplicações web abra o navegador e digite http://localhost:36000 para abrir o Módulo de administração e http://localhost:36001 para abrir o Módulo de monitoramento. Para abrir o Geoserver digite http://localhost:8080/geoserver.

Para acessar o Módulo de administração é necessário fazer o login. Por padrão o usuário é admin e a senha é admin. O usuário do Geoserver é admin e a senha é geoserver.

Configuração dos Serviços

Os serviços devem ser configurados no Módulo de administração para funcionarem corretamente. Abra a página de serviços localizada no link Administração do painel lateral e edite as configurações de todos desmarcando a opção Serviço local, depois digite o valor 22 no campo Porta e então insira o nome do container no campo Endereço, conforme descrito a seguir:

  • Para o serviço Local Alert o nome do container é terrama2_alert_1;
  • Para o serviço Local Analysis o nome do container é terrama2_analysis_1;
  • Para o serviço Local Collector o nome do container é terrama2_collector_1;
  • Para o serviço Local Interpolator o nome do container é terrama2_interpolator_1;
  • Para o serviço Local View o nome do container é terrama2_view_1.

O prefixo do nome dos containers seguem o valor da variável TERRAMA2_PROJECT_NAME do arquivo .env. Caso essa variável tenha sido alterada, o prefixo do nome dos container estarão alterados também.

Para ver o nome dos container criados, rode o comando:

sudo docker ps

No serviço Local View, a url do Geoserver deve ser configurada no trecho Parâmetros do servidor de mapas no campo endereço. A URL deve conter o nome do container. Exemplo: http://terrama2_geoserver/geoserver.

Este manual ensinou a instalar o TerraMA² com as configurações padrão. Para obter informações sobre a configuração da plataforma acesse o guia de configuração.