Diretoria de Gestão de Tecnologia da Informação (DGTI)

Manual de Instalação por Docker

Sistema do Programa de Gestão/SUSEP - Instalação por Docker

Ubuntu 20.04.4 LTS

DOCKER ENGINE (configurar repositório)

  • Atualizar o índice do pacote apt e permitir a adição de repositórios por HTTPS:
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  • Adicionar a chave GPG oficial do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • Definir o repositório estável:
echo \  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

DOCKER ENGINE (instalação)

  • Atualizar o índice do pacote apt e instalar a última versão do Docker Engine, containerd e Docker Compose*:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • Verificar a correta instalação do Docker Engine ao executar a imagem hello-world:
sudo docker run hello-world

Este comando baixa uma imagem de teste e a executa num container. O container exibe uma mensagem e sai.

GERÊNCIA DO DOCKER SEM ROOT

  • Criar um grupo docker e adicionar seu(s) usuário(s):
sudo groupadd docker
sudo usermod -aG docker $USER
  • Relogar o usuário (ou reiniciar a máquina) ou usar o comando newgrp docker para validar as alterações.
newgrp docker
  • Tentar executar comandos docker sem sudo.
docker run hello-world

DOCKER INICIANDO NO BOOT DO SISTEMA

  • Configurar serviços para iniciar no boot por padrão:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

DOCKER-COMPOSE (instalação alternativa)

  • Como os repositórios já estão disponíveis por padrão no Ubuntu, só é necessário instalar:
sudo apt-get install docker-compose
  • Verificar a versão instalada (por padrão é 1.25.0, build unknown). Para garantir a última versão, consultar o repositório (1.29.2) e usar o segundo comando para baixá-la e guardá-la em /usr/local/bin/ com o nome de docker-compose.
docker-compose --version
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Dar permissão de execução ao arquivo:
sudo chmod +x /usr/local/bin/docker-compose
  • Verificar novamente se é a última versão:
docker-compose --version

SUSEP - DOCKER

Versão 1.7.0
  • Baixar o código da aplicação:
wget https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/archive/refs/heads/docker-codigo-fonte.zip
  • Extrair (unzip) o código da aplicação e mover a pasta para /opt/susep/. Acessar a pasta da aplicação (/opt/susep/pasta_do_app).
  • Subir a aplicação com o comando:
docker-compose -f docker/docker-compose.yml up -d
  • Após a aplicação, subir o banco de dados com o comando:
docker-compose -f docker/docker-compose.sqlserver-homologacao.yml up -d

A aplicação deve estar disponível em http://localhost.

  • Para verificar o status dos containers, usar o comando:
docker-compose -f docker/docker-compose.yml ps -a
  • Após qualquer alteração nos arquivos de configuração (docker-compose.yml), reiniciar os containers.
docker-compose -f docker/docker-compose.yml down

e

docker-compose -f docker/docker-compose.yml up -d

TESTANDO AUTENTICAÇÃO NO BANCO

  • Existem usuários de teste para validação da integração entre a aplicação e o banco de dados. Caso não seja possível se autenticar, houve falha no levantamento do container do banco de dados.

CONEXÃO COM SERVIDOR LDAP

  • Editar o arquivo docker/docker-compose.yml nas linhas 61 a 77 de acordo com o servidor LDAP.
# LDAP
      # -> URL do Servidor LDAP
      - ldapOptions__Configurations__0__Url=ldap.orgao.edu.br
      # -> Porta do Servidor LDAP
      - ldapOptions__Configurations__0__Port=389
      # -> DN do usuário de serviço que será utilizado para autenticar no LDAP"
      - ldapOptions__Configurations__0__BindDN=CN=usuario,CN=Users,DC=orgao
      # -> Senha do usuário de serviço que será utilizado para autenticar no LDAP
      - ldapOptions__Configurations__0__BindPassword=
      # -> DC que será utilizado para chegar à base de usuários no LDAP
      - ldapOptions__Configurations__0__SearchBaseDC=CN=Users,DC=orgao
      # -> Consulta a ser aplicada no LDAP para encontrar os usuários
      - ldapOptions__Configurations__0__SearchFilter=(&(objectClass=user)(objectClass=person)(sAMAccountName={0}))
      # -> Campo do LDAP em que será encontrado o CPF do usuário
      - ldapOptions__Configurations__0__CpfAttributeFilter=
      # -> Campo do LDAP em que será encontrado o e-mail do usuário
      - ldapOptions__Configurations__0__EmailAttributeFilter=
  • Para realizar o login pelo LDAP com sucesso, é necessário criar um usuário na tabela [dbo].[Pessoa] com CPF e email iguais aos do usuário do LDAP.
  • Após criar o usuário espelhado no banco, caso haja falha no login, há algum erro na configuração do LDAP no arquivo docker-compose.yml.

Referências

  1. https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep
  2. https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte/docker
  3. https://github.com/spbgovbr/Sistema_Programa_de_Gestao_Susep
  4. https://docs.docker.com/engine/install/ubuntu/
  5. https://docs.docker.com/engine/install/linux-postinstall/
  6. https://linuxhostsupport.com/blog/how-to-install-and-configure-docker-compose-on-ubuntu-20-04/