Esta é uma estrutura Docker projetada para executar projetos em PHP (7.3 ou 8.2), com suporte para banco de dados MySQL e um servidor proxy reverso Nginx.
Siga estas etapas simples para começar a usar esta estrutura:
-
Crie um arquivo
.env
na raiz do seu projeto, usando o arquivo.env.sample
como modelo. -
No diretório raiz do seu projeto, execute o seguinte comando para iniciar os contêineres Docker em segundo plano:
docker-compose up -d
-
Agora, abra o seu navegador preferido e acesse
http://app.localhost
.
Para executar seu projeto PHP neste ambiente Docker, siga as etapas abaixo:
-
Coloque seu projeto dentro da pasta
projects/nome_projeto
, ondenome_projeto
é o nome do seu projeto. -
Adicione um novo arquivo de configuração em
nginx/nome_projeto.conf
e cole o seguinte trecho de código:
server {
listen 80;
listen [::]:80;
server_name nome_projeto.localhost;
root /projects/nome_projeto;
index index.php index.html;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php;
location = /index.php {
fastcgi_pass php:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
location ~ \.php$ {
return 444;
}
}
-
Execute o comando
docker restart nginx
para aplicar as configurações. -
No seu navegador, acesse
http://nome_projeto.localhost
para visualizar o seu projeto PHP.
Para configurar o Xdebug e usar o Visual Studio Code para depurar seu projeto PHP, siga estas etapas:
-
Abra a pasta do seu projeto no Visual Studio Code.
-
No arquivo
launch.json
, adicione a seguinte configuração:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/projects/nome_projeto": "${workspaceFolder}"
},
"xdebugSettings": {
"max_children": 128,
"max_data": -1,
"max_depth": 3
},
}
]
}
Certifique-se de substituir nome_projeto
pelo nome da pasta onde está o seu projeto.
Esta estrutura inclui as seguintes bibliotecas PHP:
- libzip
- libpng
- jpeg
- freetype
- postgresql
- bcmath
- zip
- intl
- gb
- pdo
- pdo_mysql
- pdo_pgsql
- mysqli
- pgsql
- composer
- xdebug
Se você deseja remover todos os contêineres e imagens, execute o seguinte comando no ambiente Linux:
sh clear-docker.sh
Isso garantirá uma limpeza completa dos recursos Docker.