Passo a passo da Criação do Docker com Laravel 11 + PHP 8.4 + Nginx + Redis + Supervisor
Neste repositório demostraremos como configurar um aplicativo PHP por vias do Framework Laravel, rodando em um servidor NGINX, PHP 8.4, Redis e Supervisor
A ideia é demostrar uma configuração básica, mas que abrirá várias possibilidades de escala-la em configurações mais robustas.
Lembrando que aqui não estamos utilizando o Laravel Sail. Aqui temos uma aplicação mais leve, uma vez que o SAIL carregaria todas as configurações necessárias para o funcionamento do Laravel.
A imagem docker será capaz de criar containers com as seguintes aplicações:
-
PHP, com várias extensões e Libs do PHP já configuradas, onde podemos enumerar algumas como: php-redis, pgsql, mysql, entre outras.
-
Nginx, rodando como proxy reverso/servidor. Aqui deixamos a configuração bem tranquila, por vias do arquivo .conf
-
Supervisor, que supervisionará as aplicações, viabilizando a execução da aplicação PHP (Laravel). Além de abrir a possibilidade futura de executarmos de filas e jobs.
-
Composer, que será necessário para baixar e instar as dependências.
Passo a passo da Criação do Docker com Laravel 11 + PHP 8.4 + Nginx + Redis + Supervisor
- Aqui partimos do princípio que você já esteja com o Docker configurado em sua máquina, o qual será necessário para rodar os comandos abaixo.
sudo docker compose version
- Caso tenha algum container já rodando em sua máquina, pode ser interessante derrubá-lo, para não haver conflito nas portas 80 e 443, que iremos utilizar aqui
sudo docker ps
sudo docker stop $(sudo docker ps -a -q)
sudo docker rm $(sudo docker ps -a -q)
sudo service docker restart
-
Certifique-se de clonar o Larvel para uma pasta 'app'. Se ficar na dúvida veja o vídeo deste projeto.
-
A listagem de pastas do projeto deve ficar:
app/
docker/
.gitignore
docker-compose.yml
readme.md
sudo docker compose build
- Pode acontecer de o seu docker utilizar imagens já existentes em seu cache. Se isso ocasionar em erro, utilize o comando abaixo:
sudo docker compose build --no-cache
sudo docker compose up
- Para rodar o ambiente sem precisar manter o terminar aberto, execute:
sudo docker compose up -d
sudo docker compose down
sudo docker ps
sudo docker exec -it id_do_container web bash
-
não execute nada estando como o usuário root, pois vai dar erros.
-
Para dar permissão ao seu usuário, temos os seguintes comandos
cd /var/www && \
chown -R www-data:www-data * && \
chmod -R o+w app