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.
Instalação do PHP, Composer e preparando ambiente Laravel no Linux
Tutorial: Preparação do Ambiente Laravel no Linux (Ubuntu)
Este tutorial descreve o processo de preparação de um ambiente Laravel em uma máquina Linux Ubuntu, considerando que:
1. Verificando a versão do PHP exigida pelo projeto
Antes de instalar ou atualizar o PHP, é importante verificar qual versão é exigida pelo projeto.
Na raiz do projeto, abra o arquivo composer.json e procure pela seção require:
{
"require": {
"php": "^8.2",
"laravel/framework": "^12.0"
}
}
O parâmetro "php" define a versão mínima necessária.
Exemplos:
Também é possível verificar utilizando o terminal:
cat composer.json | grep php
2. Verificando a versão atual do PHP
Para verificar a versão instalada:
php -v
Exemplo de saída:
PHP 8.1.2 (cli)
Caso a versão instalada seja inferior à exigida pelo projeto, será necessário instalar uma versão mais recente.
3. Instalando o PHP 8.2 no Ubuntu
Primeiramente, atualize os repositórios:
sudo apt update
Caso o PHP 8.2 não esteja disponível nos repositórios padrão, adicione o repositório mantido por Sury.org:
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ resolute main" | sudo tee /etc/apt/sources.list.d/php.list
Instale o PHP 8.2 juntamente com as extensões mais utilizadas pelo Laravel:
sudo apt update
sudo apt install php8.2 \
php8.2-cli \
php8.2-common \
php8.2-mysql \
php8.2-mbstring \
php8.2-xml \
php8.2-curl \
php8.2-zip \
php8.2-bcmath \
php8.2-intl
4. Definindo o PHP 8.2 como versão padrão
Após a instalação, o sistema pode continuar utilizando a versão antiga.
Liste as versões disponíveis:
sudo update-alternatives --config php
Exemplo:
There are 2 choices for the alternative php:
Selection Path
-------------------------------------
0 /usr/bin/php8.2
1 /usr/bin/php8.1
2 /usr/bin/php8.2
Digite o número correspondente ao PHP 8.2.
Verifique novamente:
php -v
Saída esperada:
PHP 8.2.x
5. Instalando o Composer
O Composer é o gerenciador de dependências utilizado pelo Laravel.
Verifique se ele já está instalado:
composer --version
Caso o comando não seja encontrado, instale-o:
sudo apt install composer
Alternativamente, pode-se utilizar o instalador oficial disponível em:
6. Verificando a versão do Composer
Após a instalação:
composer --version
Exemplo:
Composer version 2.8.5
7. Instalando as dependências do projeto
Com o PHP e o Composer configurados, navegue até a raiz do projeto e execute:
composer install
Este comando:
Ao final, deverá existir a seguinte estrutura:
projeto/
├── app/
├── database/
├── routes/
├── vendor/
├── composer.json
├── composer.lock
└── .env
8. Verificando se as dependências foram instaladas corretamente
Após o término da instalação, execute:
php artisan
Se o ambiente estiver configurado corretamente, será exibida a lista de comandos do Artisan.
Exemplo:
Laravel Framework 12.x
Available commands:
about
migrate
route:list
serve
...
9. Verificando se o ambiente está pronto
Execute os seguintes comandos:
php -v
composer --version
php artisan
Se todos responderem corretamente, o ambiente está preparado para iniciar o desenvolvimento e executar as migrations.
Resumo dos comandos principais
# Verificar versão do PHP
php -v
# Instalar PHP 8.2
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 \
php8.2-cli \
php8.2-common \
php8.2-mysql \
php8.2-mbstring \
php8.2-xml \
php8.2-curl \
php8.2-zip \
php8.2-bcmath \
php8.2-intl
# Definir PHP padrão
sudo update-alternatives --config php
# Verificar Composer
composer --version
# Instalar Composer
sudo apt install composer
# Instalar dependências do projeto
composer install
# Gerar APP_KEY
php artisan key:generate
# Verificar Laravel
php artisan
Após esses passos, o ambiente estará pronto para a criação e execução das migrations do projeto.