Está imagem foi desenvolvida afim de facilitar a vida do desenvolvedor PHP, permitindo assim que de forma fácil um dev consiga executar todo o ambiente de desenvolvimento PHP.
Clique aqui para acessar o vídeo tutorial no YouTube
- Ter o Docker instalando em sua máquina. Este passo a passo funciona tanto para ambiente Linux como para Windows e macOS.
- Caso você deseje subir uma imagem customizada para seu próprio Docker Hub é necessário então ter uma conta no Docker Hub.
-
Não execute os comandos de docker-compose build se este repositório estiver dentro de um subsistema Linux, como o WSL.
-
Caso o comando
sh
não sirva para você executar os scripts, então experimente utilizar./script-...
.
Clone este repositório para sua área de trabalho, pois iremos trabalhar a partir dessa estrutura de projeto.
Verificar se o Docker está sendo executado em sua máquina. Caso não esteja você deve iniciar o Docker, para isso basta basta:
- Abrir Docker Desktop, ou em ambiente Linux:
sudo service docker start
Se você não for fazer build
de uma nova imagem PHP + Nginx, então você pode pular para o 8º Passo
Caso vá customizar sua imagem Docker, então acesse o arquivo Dockerfile e realize as alterações desejadas.
Depois de feiras as alteraçãoes agora vamos contruir a imagem. Para isso execute:
docker-compose build web
Ou você pode executar diretamente o script:
sh script-build-docker-compose.sh
Com a imagem criada corretamente, você agora pode fazer um teste de execução.
docker run web
Se o teste de execução der certo, então é hora testarmos subir todo o ambiente do Docker Compose. Para isso vamos executar agora
docker-compose up -d
Ou você pode executar diretamente o script:
sh script-start-docker-compose.sh
Quando quiser parar
a execução desse ambiente execute:
sh script-drop-docker-compose.sh
Estando tudo ok, agora é hora de subirmos a imagem para o Dockerhub, assim ela fica disponível para ser acessada em diversos ambientes.
É importante no docker-compose.yml
ser alterado o nome da imagem para o de seu repositório.
Estando pronto, execute:
sh script-push-docker-compose.sh
Devemos ir ao Docker Hub e verificar se nossa imagem já está corretamente em nosso repositório.
Agora é hora de ajustarmos nossas aplicações dentro do ambiente.
Para isso iremos usar a pasta applications
, nela devemos salvar colocar cada projeto PHP, e é importante que cada projeto PHP tenha uma pasta public
, pois é nestá pasta public que o Nginx irá consultar o index.php.
Assim, você pode clonar um projeto já existente dentro de applications
, ou pode usar o script abaixo para gerar uma aplicação Laravel do zero. Certifique-se de ter o Composer e o PHP instalado em sua máquina para executar.
sh script-new-project-laravel.sh
OBS: Para ajustar variaveis de conexão de banco de dados na sua aplicação veja exemplo: index.php.
Agora é hora de configurar o Nginx para que ele consiga encontrar suas aplicações. Para isso execute:
sh script-generate_sites.sh
Ao executar esse script, você deverá informar qual o nome da pasta de sua aplicação em applications
. E também deverá informar uma porta que não esteja sendo utilizada no sistema. Recomendamos utilizar as portas entre 8080 e 8089.
Com todas essas configurações feitas, agora é hora de colocar a aplicação em execução.
sh script-start-docker-compose.sh
Exemplo para acessar sua aplicação: http://localhost:8080
Para derrubar a aplicação execute:
sh script-drop-docker-compose.sh
Caso use Windows o macOS, agora é só mover todo o ambiente configurado aqui para dentro do WSL.
-
Caso precise remover as configuções de sites do Nginx, acesse a pasta docker/nginx/sites e lá encontre e remova as configurações
.conf
que desejar. -
Caso precise derrubar um container
sh script-drop-container.sh
- Caso precise visualizar quais containers estão em execução
sh script-docker-running.sh
- Caso precise entrar em um container
sh script-access-container.sh