O que é docker exemplo prático PHP + Nginx

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!

Esta entrada foi publicada em Tecnologia. Adicione o link permanente aos seus favoritos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *