- Projeto Docker com Nginx, PHP e MySQL
- Pré-requisitos
- Como usar
- Iniciando o composer dentro do projeto PHP se necessário
- Configuração
- Persistência de dados
- Conclusão
- Comandos Básicos do Docker
- Comandos Básicos do Docker Compose
Este projeto é um exemplo de como usar Docker para criar um ambiente de desenvolvimento com Nginx, PHP e MySQL.
- WSL (Opcional)
- Docker
- Docker Compose
-
Clone este repositório no seu diretório
- Vá até o arquivo
docker-compose.ymle altere o argumento user: pedropereira, colocando o seu usuário - Se necessário poderá trocar a versão do PHP no arquivo
docker-compose.ymlem PHP_VERSION: '8.2-fpm', obtenha a versão de sua preferencia em https://hub.docker.com/_/php
- Vá até o arquivo
-
Navegue até o diretório do projeto
-
Execute o comando
docker-compose up -d --buildpara que o docker monte o container. Após a montagem -
Execute o comando
docker-compose downira derrubar o container -
Execute o comando
docker-compose up -dpara iniciar o container novamente -
Seu projeto PHP ou Laravel deve estar na pasta
application. Caso a pastaapplicationnão existe, crie a pastamkdir applicationno Linux. A listagem de pastas do projeto deve ficar:
application/
cocker-compose/
docker/
.gitignore
docker-compose.yml
Dockerfile
readme.md- Isso iniciará três contêineres Docker:
nginx: Este contêiner executa o servidor Nginx, que está configurado para servir o aplicativo PHP.php: Este contêiner executa o interpretador PHP.mysql: Este contêiner executa o servidor MySQL.
- Ececute o comando
docker-compose exec app composer installpara instalar as dependencias do projeto caso já tenha o arquivo composer.json na raiz do projeto
- Para inicializar o composer dentro do seu projeto PHP, caso seja necessário execute o comando
docker-compose exec app composer init, onde app faz referencia a pasta do projeto que sera executado. - Para gerar o dump do composer
docker-compose exec app composer dump-autoload -o - Para instalar as dependencias do composer
docker-compose exec app composer install
As configurações para Nginx, PHP e MySQL estão localizadas nos respectivos diretórios dentro do diretório config:
docker-compose/nginx: Aqui você encontrará a configuração do servidor Nginx.docker-compose/php: Aqui você encontrará a configuração do PHP.docker-compose/mysql: Aqui você encontrará a configuração do MySQL.
Os dados do MySQL são persistidos em um volume Docker chamado mysql-data.
Este é apenas um exemplo básico de como você pode usar Docker, Nginx, PHP e MySQL juntos. Sinta-se à vontade para modificar e expandir este exemplo para se adequar às suas necessidades.
Aqui estão alguns comandos básicos do Docker que você pode achar úteis ao trabalhar com contêineres Docker.
docker run: Este comando é usado para iniciar um novo contêiner Docker.docker start: Este comando inicia um contêiner que foi parado.docker stop: Este comando para um contêiner em execução.docker build: Este comando é usado para construir uma imagem Docker a partir de um Dockerfile.docker pull: Este comando é usado para puxar uma imagem Docker de um registro.docker push: Este comando é usado para enviar uma imagem Docker para um registro.docker rm: Este comando remove um contêiner Docker.docker rmi: Este comando remove uma imagem Docker.docker ps: Este comando lista todos os contêineres Docker em execução.docker inspect: Este comando retorna informações detalhadas sobre um contêiner ou imagem Docker.
Aqui estão alguns comandos básicos do Docker Compose e suas funções:
docker-compose up: Este comando é usado para iniciar todos os serviços definidos em seu arquivodocker-compose.yml. Se os serviços ainda não existirem, o Docker Compose os criará.docker-compose down: Este comando para e remove todos os serviços que estão sendo executados.docker-compose build: Este comando é usado para construir ou reconstruir serviços. Ele construirá imagens Docker para qualquer serviço que tenha uma opção debuildem seu arquivodocker-compose.yml.docker-compose pull: Este comando é usado para puxar todas as imagens necessárias para os serviços definidos em seu arquivodocker-compose.yml.docker-compose start: Este comando inicia serviços que foram previamente criados, mas que foram parados.docker-compose stop: Este comando para serviços em execução sem removê-los.docker-compose restart: Este comando reinicia todos os serviços em execução.docker-compose ps: Este comando lista todos os serviços em execução.