Neste repositório vamos fazer a criação de uma imagem Docker que embora possa ser utilizada em produção, ainda merece ser aperfeiçoada para permitir realmente o escalonamento da aplicação.
-
PHP, e diversas extensões e Libs do PHP, incluindo php-redis, pgsql, mysql, entre outras.
-
Nginx, como proxy reverso/servidor. Por fim de testes é que o Nginx está presente nesta imagem, em um momento de otimização está imagem deixará de ter o Nginx.
-
Supervisor, indispensal para executarmos a aplicação PHP e permitir por exemplo a execução de filas e jobs.
-
Composer, afinal de contas é preciso baixar as dependências mais atuais toda vez que fomos crontruir uma imagem Docker.
Vídeo Sobre Criação do Dockerfile e do Docker Compose file
docker ps
docker compose version
A listagem de pastas do projeto deve ficar:
app/
docker/
.gitignore
docker-compose.yml
readme.md
Certifique-se que sua aplicação Laravel ficou em ./app
e que existe o seguinte caminho: /app/public/index.php
Certifique-se que sua aplicação Laravel possuí um .env e que este .env está com a APP_KEY=
definida com valor válido.
docker compose build
docker compose build --no-cache
docker compose up
- Para rodar o ambiente sem precisar manter o terminar aberto, execute:
docker compose up -d
docker compose down
docker exec -it web bash
- Quando for criado novos arquivos, ou quando for a primeira inicialização do container com a aplicação, pode então haver um erro de permissão de acesso as pastas, neste caso, entre dentro do container da aplicação e execeute.
cd /var/www && \
chown -R www-data:www-data * && \
chmod -R o+w app