Configurando seu ambiente Laravel com Docker e WSL 2 no Windows 11

Facebook
Twitter
LinkedIn

Olá, amigos!

Hoje, estou animado para compartilhar com vocês algo que eu mesmo hesitei em começar, mas que melhorou significativamente a maneira como desenvolvo aplicações web: configurar um ambiente de desenvolvimento Laravel usando o Laravel Sail no Windows 11.

Se, como eu, você se cansou do ciclo eterno de instalar e desinstalar versões no XAMPP, e procura uma solução moderna, eficiente e menos dolorosa para gerenciar seus ambientes de desenvolvimento, você está no lugar certo. O Laravel Sail promete simplificar nossa vida de desenvolvedor com um ambiente Dockerizado fácil de configurar, permitindo-nos focar no que realmente importa: criar aplicações incríveis com o nosso amado Laravel. Vamos nessa?

Pré-requisitos

Antes de iniciarmos a configuração do Laravel Sail, é importante garantir que seu sistema Windows 11 esteja pronto para o desenvolvimento. Isso inclui a instalação do WSL 2, Docker Desktop e a ativação de dois recursos no nosso Windows.

Ativando os Recursos do Windows

Para isso você vai precisar buscar por Recursos do Windows no menu de pesquisa e marcar três opções:

  • Hyper-V
  • Plataforma de Máquina Virtual
  • Subsistema do Windows para Linux
image

Instalando o WSL2

Agora, vamos ao que interessa: configurar o WSL 2 no seu sistema. O primeiro passo é simplesmente ir até a loja da Microsoft e procurar pelo Ubuntu. “Ah, mas é só isso?”, você deve estar pensando. Quase isso! Quando você tentar abrir a distribuição Linux pela primeira vez, pode ser que dê de cara com um erro. Sim, eu sei, um tanto quanto frustrante, mas calma que tem solução!

Acontece que, às vezes, o Windows pede um pouquinho mais de carinho na forma de uma atualização do kernel do Linux. Mas não se preocupe, não é nada complicado. Você só precisa baixar um pacote de atualização específico. Ou, uma rápida busca por “atualização do kernel do Linux para WSL 2 no site da Microsoft” vai te levar exatamente onde você precisa.

Depois de instalar essa atualização, é hora de realmente mergulhar no Ubuntu. Você pode abrir sua nova distribuição Linux direto pela Microsoft Store, clicando em “Abrir”, ou, se estiver se sentindo um pouco mais técnico, abra o terminal do Windows e digite “wsl”. Minha dica? Use o PowerShell como administrador para isso.

wsl

Quando abrir, vai ser pedido para você criar um usuário e senha. Nada muito diferente de qualquer outra instalação de sistema operacional. E aí, sim, pode começar a se divertir explorando o mundo Linux dentro do seu Windows.

Instalando o Docker Desktop

Instalar o Docker Desktop é como fazer um bolo de caixinha: você só precisa seguir os passos simples e, voilà, está pronto! Primeiro, dê um pulo no site do Docker e encontre o botão de download. Esse botão é seu passaporte para uma vida mais fácil no desenvolvimento de aplicações. Clique nele, e o download começará. Ah, a emoção do progresso da barra de download!

Uma vez baixado, abra o instalador. Agora, prepare-se para a parte mais técnica do processo: clicar em “Next”, “Next” novamente, talvez mais um “Next” por garantia, e finalmente, o glorioso “Finish”. Parabéns, você acaba de instalar o Docker Desktop sem suar a camisa!

Mas espera, ainda não acabou! Com o Docker Desktop instalado, é hora de fazer ele e o WSL 2 se tornarem melhores amigos. Abra o Docker Desktop e vamos fazer um pequeno passeio pelas configurações:

image 1
  1. Navegue até Settings > Resources > WSL Integration. Esta tela é como o coração da integração do Docker com o WSL 2, permitindo que eles trabalhem juntos em perfeita harmonia.
  2. Aqui, você verá uma lista das distribuições Linux que você instalou via WSL 2 (caso tenha instalado outra). Encontre a sua distribuição favorita na lista e dê a ela o presente da integração com o Docker, ativando a caixinha ao lado dela. Isso é como dizer ao Docker: “Ei, trate minha distribuição Linux como parte da família”.

E está feito! Agora, o Docker Desktop e o WSL 2 estão instalados com sucesso no seu computador 😁

Iniciando um projeto com o Laravel Sail

Pois bem, dentro do seu WSL já iniciado, bastamos iniciar um novo projeto com o Laravel Sail e a boa notícia é que a documentação oficial do Laravel nos fornece um mapa completo na forma de comandos simples. Aqui está como você pode começar:

Primeiro, abra seu terminal e digite o seguinte comando:

curl -s https://laravel.build/example-app | bash

Neste comando, example-app é apenas um placeholder. Você deve substituí-lo pelo nome que deseja dar ao seu projeto.

Mas e se você quiser personalizar seu projeto desde o início, incluindo serviços essenciais como bancos de dados ou ferramentas de busca? O Laravel Sail nos permite fazer exatamente isso com uma facilidade impressionante. Experimente o comando a seguir:

curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash

Aqui, substitua example-app pelo nome do seu projeto. Com o parâmetro ?with=, você pode escolher entre uma variedade de serviços para incluir em seu projeto desde o início. As opções disponíveis incluem:

  • mysql: um sistema de gerenciamento de banco de dados relacional para armazenar e recuperar seus dados com eficiência.
  • redis: um armazenamento de estrutura de dados em memória, usado como banco de dados, cache e intermediário de mensagens.
  • meilisearch: uma ferramenta de busca poderosa para implementar funcionalidades de pesquisa no seu projeto.
  • mailhog: uma ferramenta de teste de e-mail para capturar e visualizar e-mails enviados pelo seu aplicativo durante o desenvolvimento.
  • selenium: uma ferramenta para automação de testes de navegador, ideal para testar suas aplicações web.

Dominando os Comandos do Laravel Sail

Após configurar seu ambiente de desenvolvimento e iniciar um projeto com o Laravel Sail, é hora de aprender a gerenciar seu projeto de maneira eficiente com os comandos do Sail. O Laravel Sail simplifica a execução de tarefas comuns de desenvolvimento dentro de containers Docker, usando comandos simples no terminal.

Subindo o ambiente com o Sail

Para iniciar todos os serviços definidos no seu docker-compose.yml, como MySQL, Redis, e sua aplicação Laravel, utilize o comando:

./vendor/bin/sail up

Este comando ativa os containers necessários para o seu ambiente de desenvolvimento. Se preferir que os containers sejam executados em segundo plano, você pode adicionar o parâmetro -d:

./vendor/bin/sail up -d

Parando os serviços

Quando quiser interromper os serviços, você pode usar:

./vendor/bin/sail down

Este comando desliga todos os containers ativos, mantendo seu ambiente de desenvolvimento limpo e organizado.

Configurando um Alias para o Sail

Digitar ./vendor/bin/sail a cada vez que você quiser executar um comando pode se tornar tedioso. Por isso, configurar um alias no seu shell pode economizar seu tempo e tornar o processo mais eficiente.

Se você estiver usando o Bash ou o Zsh como seu shell, você pode adicionar o seguinte alias ao seu arquivo de configuração (~/.bashrc, ~/.bash_profile, ou ~/.zshrc):

alias sail='bash vendor/bin/sail'

Após adicionar esta linha, salve o arquivo e recarregue o perfil do seu shell fechando e abrindo o terminal. Agora, em vez de digitar o caminho completo, você pode simplesmente usar o comando sail para executar qualquer comando Sail, como:

sail up
sail down
sail artisan migrate

Instalando dependências do Composer em um projeto Laravel clonado com o Sail

Após clonar um repositório de um projeto Laravel, um dos primeiros passos para configurar o ambiente de desenvolvimento é instalar as dependências necessárias. Isso geralmente é feito via Composer, o gerenciador de dependências para PHP. No entanto, ao utilizar o Laravel Sail, um ambiente Dockerizado, há uma maneira eficiente e consistente de executar essa tarefa sem a necessidade de ter o Composer instalado na sua máquina local.

Por que usar o Docker para instalar as dependências? Utilizando o Docker, através do Laravel Sail, para instalar as dependências do Composer, você assegura que o processo seja realizado em um ambiente que espelha precisamente o ambiente de produção. Isso minimiza os problemas comuns de dependências relacionados a diferenças entre ambientes de desenvolvimento e produção.

Como proceder? Aqui está um passo a passo para instalar as dependências do Composer em seu projeto Laravel clonado, utilizando o Laravel Sail:

  1. Abra o Terminal: Navegue até a pasta do seu projeto clonado.
  2. Execute o comando de instalação do Composer via Docker: Utilize o seguinte comando para iniciar a instalação das dependências do Composer:
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php83-composer:latest \
    composer install --ignore-platform-reqs

Esse comando faz uso de uma imagem Docker específica fornecida pelo Laravel Sail, que contém o PHP e o Composer, para instalar as dependências do seu projeto Laravel. Ele é construído para funcionar de forma isolada, garantindo que as dependências sejam compatíveis com o ambiente de produção, independentemente das configurações locais do desenvolvedor.

Entendendo o Comando

  • --rm: Remove o container após o uso, mantendo seu sistema limpo.
  • -u "$(id -u):$(id -g)": Sincroniza o usuário do container com o seu usuário local, prevenindo problemas de permissão.
  • -v "$(pwd):/var/www/html": Monta o diretório atual do projeto dentro do container.
  • -w /var/www/html: Define o diretório de trabalho no container.
  • laravelsail/php83-composer:latest: Especifica a imagem Docker a ser usada, contendo a versão necessária do PHP e do Composer.
  • composer install --ignore-platform-reqs: Instala as dependências ignorando os requisitos específicos da plataforma, útil para ambientes de desenvolvimento.

Pois bem, amigos, chegamos ao fim desta jornada sobre como configurar seu ambiente de desenvolvimento Laravel com Docker e WSL 2 no Windows 11. Espero que as instruções tenham sido claras e que agora você sinta mais confiança para mergulhar de cabeça nos seus projetos Laravel, aproveitando todas as facilidades que o Docker, WSL 2 e Laravel Sail têm a oferecer.

Mas não se esqueçam, a viagem pelo desenvolvimento com Laravel não termina aqui. Há uma infinidade de outros artigos sobre Laravel no blog, abordando desde conceitos básicos até técnicas avançadas e dicas de otimização. Seja você um iniciante ansioso por aprender ou um desenvolvedor experiente buscando aprofundar seus conhecimentos, há algo para todos.

E claro, se tiverem dúvidas, curiosidades ou simplesmente quiserem trocar uma ideia sobre Laravel, Docker, WSL 2 ou qualquer outro tópico relacionado, não hesitem em me chamar no Twitter @aeusteixeira. Estou sempre aberto a conversas e interessado em compartilhar conhecimento e experiências.

Até a próxima, e feliz desenvolvimento!

Mais para explorar

Comentários