“Bende çalışıyor” cümlesini azaltmanın yolu
Laravel projesinde ekip büyüdükçe ortam farkları can sıkmaya başlar. Birinde PHP sürümü farklıdır, diğerinde MySQL ayarı tutmaz, üçüncü kişide Node paketi sorun çıkarır. Docker burada sihirli değnek değil ama herkese aynı çalışma zeminini vermek için çok kullanışlıdır.
Laravel için temel servisler
Tipik bir Docker Compose yapısında uygulama konteyneri, web sunucusu, veritabanı ve gerekirse Redis/queue servisi bulunur. PHP-FPM uygulamayı çalıştırır, Nginx istekleri karşılar, MySQL veriyi tutar, Node ise frontend build tarafında devreye girer.
Nelere dikkat etmek gerekir?
- Veritabanı volume ile kalıcı tutulmalı.
- .env dosyasında host isimleri Docker servis adlarıyla uyumlu olmalı.
- Composer ve npm komutları net belgelenmeli.
- Production ve local ayarları birbirine karıştırılmamalı.
Basit tutmak çoğu zaman daha iyi
Docker dosyaları bir anda fazla karmaşıklaşabiliyor. İlk hedef tüm DevOps dünyasını projeye sokmak değil, geliştiricinin projeyi rahat açmasını sağlamak olmalı. Sonra ihtiyaç oldukça queue worker, scheduler, Redis veya ayrı servisler eklenebilir.
İyi kurulmuş bir Docker ortamı, Laravel projesinin onboarding süresini ciddi kısaltır. Yeni biri geldiğinde “şu PHP’yi kur, bu extension’ı aç” yerine tek bir komutla ayağa kalkmak büyük rahatlık.