Como Instalar Laravel 10 e Mysql com Docker

Se você está buscando uma forma de instalar o Laravel na sua máquina local, sem precisar instalar PHP, Xampp (ou similares), nem Composer, você chegou no artigo certo!

Eu nunca gostei de instalar um ambiente de desenvolvimento completo diretamente na minha máquina, isso porque tenho projetos com versões de PHP diferentes, versão de Node diferentes, Python e por aí vai. Imagina o caos que seria ficar gerenciando isso tudo com instalações no meu computador local.

O que vou te mostrar nessa publicação é a instalação de um ambiente completo para rodar o Laravel 10 com PHP 8.1, mas instalando apenas o Docker na sua máquina.

Não vou entrar no mérito da instalação do Docker, mas deixo a documentação da ferramenta aqui para você baixar e instalar conforme a configuração da sua máquina local. Após realizar a instalação, siga os passos abaixo.

Nós temos outras publicações sobre Laravel aqui no blog. Dá uma conferida lá depois.

Neste publicação você vai aprender

Criando o docker-compose.yml

Crie uma nova pasta no seu computador, onde ficarão os arquivos do projeto. O primeiro arquivo que vamos criar nesta nova pasta é o docker-compose.yml.

O nosso arquivo docker compose terá a configuração do PHP, Nginx e Mysql e o Docker file da instalação do PHP vai instalar também o Composer para permitir o restante das configurações. Você vai encontrar esse arquivo no repositório do Github, aqui.

Crie o docker-compose.yml na raiz do seu projeto e observe também as configurações que deixei na pasta .docker nesse mesmo repositório. Todos os arquivos são importantes e estão referenciados dentro do docker-compose.yml.

Se preferir, clone esse repositório para sua máquina local com o comando git clone https://github.com/itgo-labs/laravel-docker.git

Subindo os containers Docker

Agora que os arquivos já estão dentro do seu computador e o Docker está instalado, execute o comando para subir os containers e aguarde as configurações do Docker.

> docker-compose up -d

Após a instalação das dependências e da finalização do lado do Docker, utilize o comando abaixo para ver os containers em execução.

> docker ps

-- Você vai ver algo parecido com isso:
CONTAINER ID   IMAGE                     COMMAND                  CREATED          STATUS          PORTS                                NAMES
43aa5b9309b6   nginx:stable-alpine3.17   "/docker-entrypoint.…"   35 seconds ago   Up 34 seconds   0.0.0.0:8002->80/tcp                 my_nginx
b74fd0bf8671   mysql:8                   "docker-entrypoint.s…"   35 seconds ago   Up 34 seconds   33060/tcp, 0.0.0.0:33006->3306/tcp   my_mysql
418301e382d2   laravel-docker_my_app     "docker-php-entrypoi…"   35 seconds ago   Up 34 seconds   9000/tcp                             my_app

Observe que eu configurei no docker-compose.yml as portas 8002 para o Nginx e 33060 para o Mysql. Se essas portas estiverem em uso na sua máquina, modifique as configurações no arquivo para conseguir subir os containers.

Instalando o Laravel de dentro do Container

Como não temos PHP nem Composer instalado na máquina local, precisamos instalar de dentro do container, então executaremos as seguintes etapas: entrar no container my_app e realizar as instalações. Veja os comandos abaixo:

-- Entrar no container
> docker exec -it my_app bash

-- Instalar o laravel
> composer create-project laravel/laravel

Após a instalação você vai perceber que o composer instalou o laravel dentro de outra pasta chamada laravel. Não tem como mudar isso, pois nosso projeto já possui arquivos na raiz. O que faremos agora é extrair os arquivos de dentro da pasta laravel criada pelo composer e jogar na raiz do projeto junto com os demais arquivos (sem medo mesmo).

Após a instalação com Composer, vamos extrair os arquivos da pasta laravel.

Após a extração não existirá mais uma pasta laravel na raiz do projeto e o arquivo docker-compose estará no mesmo nível dos demais arquivos do laravel.

Acessando o projeto pelo navegador

Abra o navegador e acesse o endereço http://localhost:8002/ (lembre-se da porta se você alterou algo no arquivo docker-compose.yml) e você deve conseguir acessar a página do Laravel. Caso apareça um erro de permissão como este: The stream or file "/var/www/storage/logs/laravel.log" could not be opened, execute os comandos abaixo:

-- Vamos acessar o container primeiro
> docker exec -it my_app bash

-- Agora execute estes comandos para atribuir acesso às pastas
> chown -R www-data storage
> chmod -R 775 storage

Atualize o seu navegador e pronto!

Conclusão

Se você gosta de deixar seu computador livre de versões de linguagens de programação e outras parafernalhas, provavelmente adorou essa abordagem.

Estou pensando em dar seguimento nesse projeto e criar mais algumas coisas, algum sistema simples utilizando vuejs, tailwindcss, vite etc. O ecossistema Laravel dá muito suporte para trabalhar com essas ferramentas e outras.

Deixe seu comentário aqui se quiser ver algo a mais com Laravel. Até a próxima o/

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *