Mentoria CREMESP · PHP Moderno com Laravel, Bootstrap 5 e CI/CD Trilha DevOps (semanas 1 a 6) · Instrutor: Tiago Pádua
Este guia explica o que instalar, como verificar a instalação e como criar e clonar o seu repositório do projeto Agenda de Eventos, que vamos evoluir ao longo das seis semanas.
| Prazo | O que precisa estar pronto |
|---|---|
| Antes da 1ª mentoria (13/10) | Conta no GitHub, Git configurado, repositório criado e clonado (seções 1 a 6) |
| Antes da 2ª mentoria (20/10) | Docker funcionando e conta no Docker Hub (seções 4 e 5) |
Não conseguiu instalar algo na sua máquina? Use o GitHub Codespaces (seção 7): um ambiente pronto no navegador, sem instalar nada.
| Item | Para quê | A partir da | Obrigatório? |
|---|---|---|---|
| Conta no GitHub | Repositório, pull requests, GitHub Actions | Semana 1 | Sim |
| Git | Versionar e enviar o código | Semana 1 | Sim |
| Editor de código (sugestão: VS Code) | Editar o projeto | Semana 1 | Sim |
| PHP 8.3 ou superior + Composer | Rodar a aplicação e os testes na sua máquina | Semana 1 | Recomendado |
| Docker (com Docker Compose) | Containers, MySQL e NGINX | Semana 2 | Sim |
| Conta no Docker Hub | Publicar a imagem da aplicação | Semana 2 | Sim |
- GitHub: crie uma conta em https://github.com/signup (se ainda não tiver). Recomendado: ative a autenticação em dois fatores em Settings → Password and authentication.
- Docker Hub (até a semana 2): crie uma conta gratuita em https://hub.docker.com/signup.
Use de preferência uma conta pessoal. Os repositórios do treinamento serão públicos: não coloque senhas, tokens ou dados reais neles.
| Caminho | Quando escolher |
|---|---|
| A. Instalar na sua máquina (seção 4) | Você tem permissão de administrador e pode instalar programas |
| B. GitHub Codespaces (seção 7) | Máquina corporativa com restrições, sem permissão de administrador, ou problemas com Docker |
Atenção, máquinas institucionais: o Docker Desktop é gratuito para uso pessoal e educacional, mas o uso profissional em organizações grandes e órgãos públicos pode exigir licença paga. Se for usar a máquina do trabalho, confirme a política com a área de TI. Alternativas sem custo: Codespaces, Docker Engine no WSL2/Linux, Podman Desktop ou Rancher Desktop.
O projeto usa scripts de terminal (bash). No Windows, o caminho mais tranquilo é trabalhar dentro do WSL2 (um Linux integrado ao Windows).
-
Abra o PowerShell como administrador e rode o comando abaixo. Depois, reinicie o computador.
wsl --install -
Abra o aplicativo Ubuntu, crie seu usuário e senha do Linux e instale as ferramentas:
sudo apt update sudo apt install -y git curl unzip composer \ php-cli php-sqlite3 php-mysql php-xml php-mbstring -
Instale o VS Code no Windows (https://code.visualstudio.com/) e a extensão WSL. Para abrir um projeto que está no Ubuntu, rode
code .no terminal do Ubuntu. -
Docker (semana 2), uma das opções:
- Docker Desktop para Windows, com a integração com o WSL ligada (Settings → Resources → WSL integration).
- Docker Engine instalado dentro do Ubuntu do WSL, seguindo a documentação oficial para Ubuntu.
Trabalhe com os projetos dentro do Linux (ex.:
~/projetos), e não emC:\.... Fica bem mais rápido e evita problemas de quebra de linha.
-
Instale o Homebrew (https://brew.sh/), se ainda não tiver.
-
Instale as ferramentas:
brew install git php composer
-
Instale o VS Code (https://code.visualstudio.com/).
-
Docker (semana 2): Docker Desktop para Mac (escolha a versão Apple Silicon ou Intel), ou uma alternativa como Podman Desktop, Rancher Desktop ou OrbStack.
sudo apt update
sudo apt install -y git curl unzip composer \
php-cli php-sqlite3 php-mysql php-xml php-mbstringDocker (semana 2): instale o Docker Engine pela documentação oficial e adicione seu usuário ao grupo docker. Depois, saia e entre de novo na sessão:
sudo usermod -aG docker $USERRode uma única vez (no Windows, dentro do Ubuntu do WSL):
git config --global user.name "Seu Nome"
git config --global user.email "seu-email@exemplo.com" # o mesmo e-mail da conta do GitHub
git config --global init.defaultBranch mainAutenticação com o GitHub. O GitHub não aceita a senha da conta no git push via HTTPS. Escolha uma opção:
| Opção | Como |
|---|---|
| GitHub CLI (mais simples) | Instale o gh (https://cli.github.com/) e rode gh auth login, escolhendo HTTPS |
| Git Credential Manager | Já vem no Git para Windows e abre o navegador para você autorizar no primeiro push |
| Chave SSH | Siga o guia "Conectar-se ao GitHub com SSH" da documentação do GitHub |
- Acesse https://github.com/tiagolpadua/php-moderno-agenda-eventos.
- Clique em Use this template → Create a new repository.
- Em Owner, escolha a sua conta. Use o nome
php-moderno-agenda-eventose marque Public. - Clique em Create repository.
Não use "Fork": durante a trilha você vai configurar Actions, Dependabot e regras de proteção no seu próprio repositório.
Troque SEU-USUARIO pelo seu usuário do GitHub:
mkdir -p ~/projetos && cd ~/projetos
git clone https://github.com/SEU-USUARIO/php-moderno-agenda-eventos.git
cd php-moderno-agenda-eventos
composer install # instala as dependências (PHPUnit)
composer test # deve terminar com "OK (10 tests ...)"
composer serve # sobe a aplicação em http://localhost:8000Abra http://localhost:8000 no navegador. Você deve ver a Agenda de Eventos com três eventos de exemplo. Para parar o servidor, use Ctrl + C no terminal.
Sem Composer? Dá para ver a aplicação funcionando com
php -S localhost:8000 -t public.
Confirme que você consegue enviar alterações para o seu repositório:
git switch -c teste/push
git commit --allow-empty -m "chore: teste de push"
git push -u origin teste/pushSe o push funcionou, a branch teste/push aparece no GitHub. Pode apagá-la depois: git push origin --delete teste/push.
-
No seu repositório (criado na seção 6.1), clique em Code → Codespaces → Create codespace on main.
-
Aguarde o ambiente abrir. É um VS Code no navegador, já com o projeto clonado.
-
No terminal do Codespace, confira as ferramentas e rode a aplicação:
php -v && composer --version && docker --version composer install && composer test composer serve
-
Quando a aplicação subir, o Codespaces oferece abrir a porta 8000 no navegador (aba Ports).
O plano gratuito do GitHub inclui uma cota mensal de uso do Codespaces. Pare o Codespace quando terminar (Code → Codespaces → ⋯ → Stop codespace) para não consumir a cota à toa.
Rode os comandos abaixo. Os resultados devem ser parecidos com estes:
| Comando | Resultado esperado | Necessário para |
|---|---|---|
git --version |
git version 2.x |
Semana 1 |
php -v |
PHP 8.3.x ou superior |
Semana 1 |
composer --version |
Composer version 2.x |
Semana 1 |
docker --version |
Docker version 2x.x (ou superior) |
Semana 2 |
docker compose version |
Docker Compose version v2.x (ou superior) |
Semana 2 |
docker run --rm hello-world |
Mensagem "Hello from Docker!" | Semana 2 |
| Problema | Solução |
|---|---|
Authentication failed no git push |
O GitHub não aceita a senha da conta. Use gh auth login, o Git Credential Manager ou SSH (seção 5) |
php: command not found |
O PHP não foi instalado ou não está no PATH. Repita a seção 4, ou use o Codespaces |
| Versão do PHP menor que 8.3 | Atualize o PHP (no Ubuntu 24.04 o pacote padrão já é 8.3), ou use o Codespaces |
composer install reclama de extensão faltando (ext-...) |
Instale a extensão indicada (ex.: sudo apt install php-xml php-mbstring) |
Address already in use na porta 8000 |
Outro programa usa a porta. Rode php -S localhost:8001 -t public |
| Arquivos inteiros aparecem como alterados no Git (Windows) | Quebra de linha CRLF × LF. Trabalhe dentro do WSL, ou rode git config --global core.autocrlf true no Git para Windows |
permission denied ... docker.sock (Linux/WSL) |
Rode sudo usermod -aG docker $USER, saia e entre de novo |
| Docker Desktop não inicia no Windows | Verifique se a virtualização está ativa na BIOS e se o WSL2 está instalado (wsl --status) |
| Sem permissão de administrador na máquina | Use o GitHub Codespaces (seção 7) |
- Conta no GitHub criada (com autenticação em dois fatores)
- Git instalado e configurado (
user.name,user.email) - Repositório
php-moderno-agenda-eventoscriado a partir do template, na sua conta, como público - Repositório clonado,
composer testpassando e aplicação abrindo emhttp://localhost:8000(ou no Codespaces) -
git pushfuncionando (seção 6.3) - (até 20/10) Docker instalado,
docker run --rm hello-worldfuncionando e conta no Docker Hub
- Git: https://git-scm.com/downloads
- GitHub: criar repositório a partir de um modelo: https://docs.github.com/pt/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template
- GitHub: credenciais no Git: https://docs.github.com/pt/get-started/git-basics/caching-your-github-credentials-in-git
- GitHub CLI: https://cli.github.com/
- GitHub Codespaces: https://docs.github.com/pt/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository
- WSL: https://learn.microsoft.com/pt-br/windows/wsl/install
- PHP: https://www.php.net/downloads · Composer: https://getcomposer.org/download/
- Docker: https://docs.docker.com/get-started/get-docker/
- VS Code: https://code.visualstudio.com/
Dúvidas? Traga para a mentoria ou fale com o instrutor: tiagolpadua@gmail.com