🧩 Exercícios: Conteinerização com Sail e Deploy com Octane
Spec Backend Com Php E Laravel • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 19.1 — Ambiente de Desenvolvimento Local com Laravel Sail
Contexto: Ambiente de Desenvolvimento Local com Laravel Sail no contexto de Conteinerização com Sail e Deploy com Octane.
Requisitos de Execução:
- Montar
docker-compose.ymlorquestrando PHP 8.3, PostgreSQL e Redis via Sail.
Resultado Esperado
Ambiente local inicializado com `sail up -d`.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_1_SeuNome - Envie na tarefa:
Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
# docker-compose.yml (Sail)
version: '3.8'
services:
laravel.test:
image: sail-8.3/app
ports:
- '80:80'
environment:
WWWUSER: '1000'
LARAVEL_SAIL: 1
depends_on:
- pgsql
- redis
pgsql:
image: postgres:16-alpine
redis:
image: redis:7-alpine
🔍 Nível 2: Prática
Problema 19.2 — Aceleração com Laravel Octane (FrankenPHP / Swoole)
Contexto: Aceleração com Laravel Octane (FrankenPHP / Swoole) no contexto de Conteinerização com Sail e Deploy com Octane.
Requisitos de Execução:
- Configurar Laravel Octane para manter a aplicação carregada em memória com servidor de alta performance.
Resultado Esperado
Octane inicializado atingindo 10.000 req/s em benchmark.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_2_SeuNome - Envie na tarefa:
Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
// config/octane.php
return [
'server' => env('OCTANE_SERVER', 'frankenphp'),
'workers' => env('OCTANE_WORKERS', 'auto'),
'max_requests' => 10000,
];
⚡ Nível 3: Integração
Problema 19.3 — Cuidados com Estado em Aplicações Octane (State Leaks)
Contexto: Cuidados com Estado em Aplicações Octane (State Leaks) no contexto de Conteinerização com Sail e Deploy com Octane.
Requisitos de Execução:
- Implementar flush de variáveis estáticas e singletons após cada requisição.
Resultado Esperado
Vazamento de estado evitado com listeners de reset de contexto no Octane.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_3_SeuNome - Envie na tarefa:
Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
<?php
// app/Providers/AppServiceProvider.php
use Laravel\Octane\Events\RequestReceived;
use Illuminate\Support\Facades\Event;
Event::listen(RequestReceived::class, function () {
// Reset de buffers estáticos
});
🏆 Nível 4: Desafio Corporativo
Problema 19.4 — Dockerfile Multi-stage para Produção com PHP-FPM e Opcache
Contexto: Dockerfile Multi-stage para Produção com PHP-FPM e Opcache no contexto de Conteinerização com Sail e Deploy com Octane.
Requisitos de Execução:
- Escrever Dockerfile de produção compilando extensões PDO, Redis e habilitando JIT/Opcache.
Resultado Esperado
Imagem Docker de produção otimizada para Kubernetes.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_4_SeuNome - Envie na tarefa:
Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
# Dockerfile.prod
FROM php:8.3-fpm-alpine
RUN docker-php-ext-install pdo pdo_pgsql opcache
COPY . /var/www/html
RUN composer install --no-dev --optimize-autoloader
EXPOSE 9000
CMD ["php-fpm"]