- 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.yml
e altere o argumento user: pedropereira, colocando o seu usuário - Se necessário poderá trocar a versão do PHP no arquivo
docker-compose.yml
em 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 --build
para que o docker monte o container. Após a montagem -
Execute o comando
docker-compose down
ira derrubar o container -
Execute o comando
docker-compose up -d
para iniciar o container novamente -
Seu projeto PHP ou Laravel deve estar na pasta
application
. Caso a pastaapplication
não existe, crie a pastamkdir application
no 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 install
para 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 debuild
em 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.