Desenvolvimento do Sistema de Seleção da PRPPG - Guavira Documentação do processo de desenvolvimento do Guavira, sistema de inscrição em processos seletivos da PRPPG Preparação do Ambiente Virtual Conteinerizado Tutorial de como realizar o deploy dos contêineres necessários para iniciar o desenvolvimento do Guavira. Deploy dos contêineres 1. Estruturação Inicial e Banco de Dados Como definido previamente, decidiu-se iniciar a implementação do Guavira pela estruturação e criação do seu banco de dados. Para isso, é possível consultar a documentação disponibilizada pela UFVJM, que apresenta um guia para a criação de um contêiner com o serviço de banco de dados PostgreSQL, responsável por hospedar a estrutura do sistema. 2. Acesso ao Repositório e Clonagem do Projeto Após obter acesso ao GitLab por meio do LDAP, que é o sistema de login institucional, e realizar a criação de uma chave SSH para autorizar operações a partir do seu computador, é possível prosseguir para a próxima etapa. Nessa fase, será necessário implementar no projeto da API o contêiner responsável por hospedar o banco de dados do Guavira. Para isso, deve-se realizar a clonagem do projeto para o ambiente local, permitindo sua manipulação de forma segura. É importante destacar que os projetos clonados do GitLab devem estar localizados no diretório home do usuário, pois alguns comandos e operações dependem dessa localização. Após a clonagem, recomenda-se executar o comando de configuração de codificação, a fim de evitar que diferenças de encoding sejam interpretadas como alterações pelo Git. git clone git@git.dds.ufvjm.edu.br:conta-institucional/api.git api # entrar na pasta baixada cd api # Instrução para o Git ignorar alterações de permissão de arquivo (as permissões não são versionadas) git config core.fileMode false 3. Configuração do LDAP e Variáveis de Ambiente Para que o projeto da API funcione corretamente, é necessário que o serviço de LDAP esteja ativo, visto que grande parte das funcionalidades depende desse mecanismo de autenticação. Para realizar o deploy dos contêineres, será preciso obter as credenciais do LDAP, que são confidenciais e devem ser solicitadas via RocketChat a um responsável do DSI, não sendo, portanto, incluídas nesta documentação. Com as credenciais em mãos, deve-se criar um arquivo .env , contendo as variáveis de ambiente necessárias para o funcionamento dos contêineres. Esse arquivo pode ser gerado a partir de uma cópia do .env.example , substituindo-se os valores pelas credenciais corretas. cp .env.example .env 4. Deploy dos Contêineres O processo de deploy será realizado com o auxílio de um Makefile , que contém scripts responsáveis por executar comandos Docker. Inicialmente, é necessário clonar o projeto de automação, uma vez que ele contém o serviço de LDAP. Em seguida, deve-se realizar o login no HUB da UFVJM utilizando o comando apropriado. docker login -u nome.sobrenome hub.dds.ufvjm.edu.br Caso esteja utilizando o Docker Desktop, pode ocorrer um erro durante esse processo. Para solucioná-lo, é necessário acessar o arquivo ~/.docker/config.json e remover o par chave-valor "credsStore" . Após isso, pode-se prosseguir com a clonagem do projeto de automação e realizar o deploy apenas do contêiner de LDAP, sendo recomendado comentar os demais serviços para evitar consumo desnecessário de recursos da máquina. # ir pra home do usuario cd ~ # baixar o repositório git clone git@git.dds.ufvjm.edu.br:dds/automacao.git 5. Execução dos Serviços Por fim, com todas as configurações concluídas, pode-se utilizar o script start presente no Makefile para realizar o deploy dos contêineres da API. Paralelamente, deve-se utilizar o comando docker compose up para iniciar o contêiner de automação, garantindo o funcionamento completo do ambiente necessário para o desenvolvimento do sistema. # cd ~/api make start # cd ~/automacao docker compose up Como etapa final de organização do ambiente de desenvolvimento, recomenda-se realizar o attach (ou abertura) dos dois projetos — API e automação — em uma IDE de sua preferência, como o PhpStorm . Isso facilita a navegação entre os arquivos, execução de comandos, edição de código e integração com ferramentas de versionamento. Em IDEs como o PhpStorm, é possível abrir ambos os projetos na mesma janela, utilizando a opção de Attach Project , ou simplesmente abrindo os diretórios simultaneamente no workspace.