Executando verificação de segurança...
2

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.

  1. 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.

  1. 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

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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
  1. 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.

Carregando publicação patrocinada...
1
1

Os starter kits do Laravel não possuem repositórios Docker próprios (ao menos não que eu saiba).

Em relação ao Laravel Sail, pretendo abordá-lo em um vídeo específico.

Neste artigo, a abordagem utiliza apenas Docker puro, sem o uso do Sail.