O que é Docker e Como Rodar PHP com Nginx em um Container
Introdução ao Docker
Docker é uma plataforma de conteinerização que permite empacotar aplicações e suas dependências em containers isolados. Isso torna o desenvolvimento mais ágil, facilitando a distribuição e execução de software em qualquer ambiente, independentemente da infraestrutura.
Benefícios do Docker
- Portabilidade: Containers podem rodar em qualquer ambiente com Docker instalado.
- Escalabilidade: Facilidade para criar e gerenciar múltiplas instâncias da aplicação.
- Eficiência: Compartilhamento de recursos do sistema operacional sem necessidade de máquinas virtuais pesadas.
- Ambiente Consistente: Evita o problema do “na minha máquina funciona”.
Configurando um Ambiente PHP com Nginx no Docker
Vamos criar um ambiente Docker que roda PHP com Nginx. Para isso, utilizaremos um arquivo docker-compose.yml
que definirá nossos containers.
Estrutura de Diretórios
projeto/
├── docker-compose.yml
├── nginx/
│ ├── default.conf
├── php/
│ ├── Dockerfile
├── www/
├── index.php
1. Criando o docker-compose.yml
docker-compose.yml
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx_php
ports:
- "8080:80"
volumes:
- ./www:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
build: ./php
container_name: php_fpm
volumes:
- ./www:/var/www/html
2. Configurando o Nginx (nginx/default.conf
)
default.conf
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
3. Criando o Dockerfile para o PHP (php/Dockerfile
)
Aqui do Dockerfile você tem a liberdade de instalar mais pacotes do próprio linux, bibliotecas e programas que você tenha necessidade de usar como por exemplo se precisar usar o aplicativo unzip, você deve adicionar o comando RUN, por exemplo RUN apt-get install -y unzip falaremos com mais detalhes em outras postagens mais avançadas.
Dockerfile
FROM php:8.0-fpm
WORKDIR /var/www/html
4. Criando um Arquivo PHP de Teste (www/index.php
)
<?php
echo "Hello, Docker with PHP and Nginx!";
Executando o Ambiente
Para rodar o ambiente, use o seguinte comando no terminal dentro da pasta do projeto:
docker-compose up -d
Acesse no navegador: http://localhost:8080
Conclusão
Com essa configuração simples, você pode rodar PHP com Nginx dentro de containers Docker, garantindo um ambiente portável e eficiente para desenvolvimento. Experimente adicionar bancos de dados como MySQL ou PostgreSQL para ampliar suas possibilidades!
Gostou deste tutorial? Compartilhe e fique ligado para mais dicas sobre Docker e desenvolvimento web!