Her bir back-end geliştiricisi, kariyerinin belirli bir döneminde XAMPP, WAMP veya manuel kurulmuş Linux servislerinin (Apache, PHP-FPM) zorluklarını deneyimlemelidir ki, yeniliklerin değerini anlasın. Geleneksel yaklaşımlar bize temelleri öğretti, fakat gelişmek zorundayız. Gerçekle yüzleşelim: lokal ortamı her seferinde sıfırdan kurmak, paketlerin versiyon çatışmalarıyla uğraşmak gerçek bir zaman kaybıdır. “Benim bilgisayarımda çalışıyor” bahaneleri artık modern yazılım geliştirmede geçerli değil.
Ancak projeler büyüdükçe, ekip içinde çalışmaya başladıkça ve farklı sunucu ortamlarına deploy yaptıkça eski “lokal kurulum” yöntemleri ciddi başağrısına neden olmaya başlıyor. “Kod benim bilgisayarımda çalışıyordu, sunucuda neden çöktü?” sorusu buradan kaynaklanıyor.
Burada sahneye Docker giriyor. Sert gelebilir, fakat eğer bu gün hâlâ projenizin bağımlılıklarını (PHP versiyonu, MySQL, Redis) işletim sisteminizin üstüne doğrudan kuruyorsanız, gelecekteki hatalar için zemin hazırlıyorsunuz. Docker, yazılımı ve onun çalışması için gerekli tüm ihtiyaçları “konteyner” adı verilen izole, standartlaştırılmış paketlere toplayan bir teknolojidir.
Neden Docker?
Her zaman yazılımda temiz koda ulaşmaya çalışıyoruz. Peki, altyapımız neden karmaşık olmalı? Docker, mühendilik prensiplerini doğrudan sunucu/lokal ortamımızda uygulamamıza imkân tanır:
İzole Etme: PHP, MySQL ve Redis her biri kendi bağımsız konteynerinde çalışır. Birbirinin veya işletim sisteminizin konfigürasyonuna karışmaz. Sisteminiz her zaman temiz kalır.
Taşınabilirlik ve Stabilite: Linux ortamında yazdığınız kod ve kurduğunuz mimari, ekip arkadaşınızın Windows veya Mac bilgisayarında da, canlı sunucuda da aynı şekilde çalışacaktır. Sürprizlere yer yok.
Tekrar Kullanılabilirlik: Her yeni proje için
php.iniveyamy.cnfdosyalarını sıfırdan yapılandırmaya gerek yok. Birdocker-compose.ymldosyası tüm mimariyi tanımlar ve otomatikleştirir.
Laravel Sail: En Kısa ve Temiz Yol
Docker’ı sıfırdan öğrenmek ve karmaşık Dockerfilelar yazmak zaman alabilir. Fakat özel bir ihtiyacınız yoksa, Amerika’yı yeniden keşfetmeye gerek yok. Laravel, Docker kullanımını basitleştirmek için Laravel Sail adlı resmi, hafif bir paket sunar.
1. Docker ile Yeni Laravel Projesi Yaratmak
Yeni bir Laravel projesine başlıyorsanız, bilgisayarınızda sadece Docker’ın çalışıyor olması yeterlidir. Terminalinizde sadece bu komutu çalıştırın:
curl -s "https://laravel.build/benim-yeni-projem" | bash
Bu kadar basit. Bu komut arka planda sizin için yeni Laravel projesi oluşturacak ve gerekli Docker konteynerlerini kendisi hazırlayacaktır.
2. Mevcut Projeye Docker Eklemek
Eğer zaten elinizde eski yöntemle yazılmış (örneğin, XAMPP ile başladığınız) bir proje varsa, Sail’i projeye sonradan da ekleyebilirsiniz:
composer require laravel/sail --dev
php artisan sail:install
Bu işlem sizden projede hangi hizmetleri istediğinizi soracak ve projenizin klasöründe docker-compose.yml dosyasını oluşturacaktır.
3. Konteynerleri İşe Açmak
Bütün sihir bu komutla başlar:
./vendor/bin/sail up -d
Artık ne XAMPP’ın kontrol panelini açmaya, ne de “Apache neden yine hata veriyor?” diye logları aramaya gerek yok. Temiz, modern ve her yerde aynı çalışan mimarin arka planda (-d yani detached mode) çalıştı.
Kaynak: Orijinal Makale


