Como instalar um ambiente Laravel com Docker (do jeito prático)
Oi, tudo bem?
Meu nome é John, aqui do canal Pragmático, e neste artigo eu vou te mostrar, de forma bem direta, como instalar um ambiente Laravel com Docker.
Observação: esse artigo possui uma versão em vídeo, e você pode acessá-lo por meio do link: https://www.youtube.com/watch?v=UBWofCos8NA
A ideia aqui é bem simples: subir um ambiente padrão, com Laravel, Docker, Redis, PHP e tudo que normalmente já vem nas instruções oficiais do Laravel. Nada inventado, nada mirabolante.
Inclusive, pra fazer isso, eu vou usar o próprio tutorial oficial do Docker, aquele que já entrega essa estrutura pronta. O link do repositório vai estar na descrição.
- Clonando o repositório
A primeira coisa que a gente vai fazer é clonar o repositório.
git clone https://github.com/dockersamples/laravel-docker-examples
Depois que você clonar, vai aparecer uma pasta, algo como laravel-docker-example.
Você pode renomear essa pasta para o nome do seu projeto, se quiser. Nesse caso, eu vou deixar assim mesmo.
- Conferindo os containers
Se você rodar:
docker ps -a
Talvez você já veja algum container rodando. No meu caso, eu já tinha algo ali ativo, mas como a ideia aqui é fazer tudo do zero, eu parei tudo antes de continuar.
Depois disso, se você rodar:
ls -la
Vai ver que o projeto já vem com toda a estrutura do Docker pronta.
Tem arquivos para dev e para produção, incluindo:
docker-compose.dev.yml
docker-compose.prod.yml
.env.example
- Criando o arquivo .env
Agora vamos trabalhar no ambiente de desenvolvimento.
Primeiro passo aqui é simples: pegar o .env.example e criar o .env.
cp .env.example .env
Se você listar os arquivos de novo, vai ver que o .env já foi criado.
Nesse momento, não precisa mexer nele.
- Subindo o Docker Compose (modo dev)
Como a gente tem mais de um arquivo de compose, precisamos especificar qual vamos usar. No caso, o de desenvolvimento.
docker compose -f docker-compose.dev.yml up -d
No seu caso, isso pode demorar um pouco mais, porque o Docker vai baixar as imagens e fazer o build.
Uma observação importante: mesmo que você não rode build explicitamente, o Docker Compose já faz isso automaticamente.
- Entrando no container (workspace)
Depois que tudo subir, a próxima coisa é entrar no container de workspace.
Pra isso, primeiro você pode conferir os containers:
docker ps -a
Você vai ver algo como workspace no nome do container. É nele que a gente vai entrar.
docker compose -f docker-compose.dev.yml exec workspace bash
Agora você está dentro do container.
- Instalando as dependências
Dentro do container, vamos instalar as dependências do projeto.
Composer
composer install
Isso vai instalar todas as dependências do Laravel. Pode demorar um pouquinho.
Node / NPM
npm install
Ele também pede pra rodar:
npm run dev
Sinceramente, nesse momento isso não vai mudar nada, mas vamos seguir o fluxo.
- Configurando o Laravel
Agora vamos rodar alguns comandos básicos do Laravel.
Criar as tabelas no banco
php artisan migrate
Gerar a chave da aplicação
php artisan key:generate
- Acessando no navegador (e resolvendo erro 502)
Se você tentar acessar agora:
http://localhost
Pode acontecer de dar um erro 502 Bad Gateway.
Isso normalmente acontece porque o container do PHP-FPM não subiu corretamente após algumas alterações.
Se você rodar:
docker ps -a
Vai perceber que ele não está rodando.
Como resolver?
Simples: reiniciar os containers.
docker compose -f docker-compose.dev.yml down
Depois:
docker compose -f docker-compose.dev.yml up -d
Agora confere de novo:
docker ps -a
Se tudo estiver UP, é só atualizar o navegador.
Pronto. Laravel funcionando.