Roteiro de instalação do SAPL 3.1 utilizando docker
Instalação via Docker (qualquer sistema Operacional)
Você pode utilizar nossas imagens Docker para instalar o SAPL 3.1, em qualquer sistema operacional em que o Docker (Community Edition) é suportado. Veja mais informações em https://www.docker.com/community-edition.
Repositório da imagem: https://github.com/interlegis/sapl
No docker hub: https://hub.docker.com/r/interlegis/sapl
Roteiro
Atenção!
Antes de iniciar o processo de instalação via Docker tenha certeza de que:
- A arquitetura do do linux do host (servidor/pc/vm/host) onde será instalado é de 64 bits;
- Que a versão do kernel do linux do host é igual ou superior a 3.10;
- Que a porta 80 não esteja sendo utilizada por outra aplicação/serviço;
- Que a porta 5432 não esteja sendo utilizada por outra aplicação/serviço.
1) Instalação do Docker
1.1) No terminal digite o comando abaixo para se tornar usuário root:
sudo -s
1.2) Para instalar o Docker em sua máquina, rode o comando:
curl -ssl https://get.docker.com | sh
1.3) Verifique se o Docker foi devidamente instalado, digitando o seguinte domando no terminal.
docker ps
O retorno do comando acima, caso o Docker esteja devidamente instalado será algo como:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2) Instalação do Docker compose:
2.1) Ainda no terminal e continuando como usuário root, execute o comando abaixo para instalar o Docker Compose em sua máquina:
curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.2) Ainda no terminal e continuando como usuário root, digite o comando abaixo para dar permissão de execução ao Docker Compose:
chmod +x /usr/local/bin/docker-compose
3) Salve o docker-compose.yml
3.1) Ainda no terminal e continuando como usuário root, digite o comando abaixo e crie uma pasta para armazenar o arquivo docker-compose.yml?
mkdir sapl31
3.2) Ainda no terminal e continuando como usuário root, e utilizando seu editor favorito (Vi, vim , nano, emacs, etc), copie e cole o conteúdo abaixo do link abaixo e o salve com o nome docker-compose.yml dentro da pasta sapl31, que foi criada anteriormente.
https://raw.githubusercontent.com/interlegis/sapl/3.1.x/docker/docker-compose.yml
4) Ainda no terminal e continuando como usuário root, entre na pasta onde se encontra o arquivo que foi salvo acima, digitando o comando abaixo:
$ cd sapl31
5) Rode o Docker compose:
5.1) Ainda no terminal e continuando como usuário root, rode o comando abaixo:
$ docker-compose up -d
5.2) Verifique se o Docker foi devidamente instalado, digitando o seguinte domando no terminal:
docker ps
O retorno do comando acima, caso o Docker esteja devidamente instalado será algo como:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a7a3aa1fe6a9 interlegis/sapl:3.1.10-BETA "/var/interlegis/s..." 2 days ago Up 2 minutes 0.0.0.0:80->80/tcp sapl31_sapl_1 900730bfde9e postgres "docker-entrypoint..." 2 days ago Up 2 minutes 0.0.0.0:5532->5432/tcp sapl31_sapldb_1
6) Caso necessário, veja os logs.
Caso precise ver o que está acontecendo, rode o comando abaixo:
$ docker-compose logs -f
Explicação do arquivo docker-compose.yml.
Parâmetros utilizados:
1) Image
Este parâmetro indica ao Docker qual imagem deve ser utilizada para rodar o serviço.
2) Environment
Neste parâmetro é que fica declarado as variáveis de ambiente necessárias para que o container possa rodar.
3) Volumes
Este parâmetro cria uma cópia dos diretórios listados antes dos dois pontos (:) para um diretório na sua máquina (o listado depois dos dois pontos).
Obs: os volumes são necessários para que, caso o container seja destruído, não se percam os dados armazenados.
4) Ports
Este parâmetro indica a porta em que o serviço irá rodar:
Antes dos dois pontos(:), temos a porta que será utilizada no host.
Depois dos dois pontos (:), temos a porta que será utilizada na rede interna do Docker.
Dica: caso a porta "80" já esteja sendo utilizada no seu host, você irá modificar a opção antes dos dois pontos (:) para utilizar outra porta.
5) Services
Tem-se dois serviços rodando com este docker-compose: uma imagem do postgres funcionando como banco de dados do SAPL e uma imagem do SAPL que é a própria aplicação.