Demonstrações práticas de orquestração local, healthchecks e segredos com arquivos .env.


🗺️ Fluxo de Resolução de DNS Interno no Docker Compose

flowchart LR
    API["Serviço 'api'"] --> |"GET http://auth-service:3000"| DNS["DNS Server Embutido do Docker (127.0.0.11)"]
    DNS --> |"Resolve para IP Virtual 172.20.0.4"| AUTH["Serviço 'auth-service'"]
    
    API --> |"Conecta em redis:6379"| DNS
    DNS --> |"Resolve para IP Virtual 172.20.0.2"| REDIS["Serviço 'redis' ⚡"]

    style API fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
    style DNS fill:#ede7f6,stroke:#512da8,stroke-width:2px
    style AUTH fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
    style REDIS fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px

📄 Exemplo 1: Arquivo .env.example Seguro

# Configurações do Banco de Dados
POSTGRES_USER=postgres
POSTGRES_PASSWORD=altere_esta_senha_no_seu_env_local
POSTGRES_DB=empresa_dev

# Configurações da Aplicação
API_PORT=8000
SECRET_KEY=chave_secreta_jwt_dev_apenas

📄 Exemplo 2: Comandos Rápidos do Docker Compose V2

# Iniciar todos os serviços e forçar reconstrução das imagens modificadas:
docker compose up -d --build

# Visualizar o consumo de CPU e Memória de cada serviço da stack:
docker compose top

# Executar uma migração de banco dentro do container da API:
docker compose exec api python manage.py migrate