Laravel ile geliştirme yaparken, ortam kurulumları ve bağımlılık yönetimi bazen can sıkıcı olabilir. Özellikle projelerin farklı makinelerde çalışması gerektiğinde, “Neden bu benim bilgisayarımda çalışıyor, ama başka bir yerde çalışmıyor?” sorusu sıkça akıllara gelir. İşte burada Docker devreye giriyor! Docker, uygulamanızın tüm gereksinimlerini sanal bir konteyner içinde izole ederek, geliştirme ortamınızı her yerde aynı şekilde çalışacak şekilde oluşturmanıza olanak tanır.
Bu yazıda, Docker ile Laravel geliştirme ortamını nasıl hızlıca ve sorunsuz bir şekilde kurabileceğinizi anlatacağım. Docker’ı projelerinizde kullanarak, geliştirme sürecinizi hızlandırabilir, kolayca yeniden yapılandırabilir ve her zaman doğru ortamda çalışabilirsiniz. Şimdi, başlıyoruz!
1. Docker Nedir ve Laravel ile Neden Kullanmalıyız?
Docker, yazılım geliştirme dünyasında son yılların en popüler araçlarından biri. Sanal makineler yerine konteyner teknolojisini kullanarak, uygulamalarınızı her ortamda aynı şekilde çalıştırmanızı sağlar. Laravel gibi PHP tabanlı framework'lerde, bağımlılıkları yönetmek ve ortamları tutarlı tutmak oldukça önemli. Docker, bu süreçleri oldukça kolaylaştırır ve projelerinizin her zaman aynı şekilde çalışmasını sağlar.
Docker’ın Avantajları:
- Taşınabilirlik: Docker konteynerleri, her platformda aynı şekilde çalışır. Geliştirdiğiniz ortamı başka bir sunucuya taşırken hiçbir sorun yaşamazsınız.
- Yalıtım: Her bir proje kendi konteynerinde çalışır, böylece farklı projelerin bağımlılıkları birbirine karışmaz.
- Hızlı Başlangıç: Docker, hızlı bir şekilde çevresel değişkenler ve ayarlar ile projelerinizi başlatmanıza olanak tanır.
2. Geliştirme Ortamı İçin Docker Kurulumu
Laravel ile çalışmaya başlamadan önce, Docker'ı bilgisayarınıza kurmanız gerekecek. Aşağıdaki adımları takip ederek, Docker’ı sorunsuz bir şekilde kurabilirsiniz.
# Adım 1: Docker'ı İndirin ve Kurun
Docker’ı kurmak için [Docker’ın resmi web sitesine](https://www.docker.com/get-started) gidin ve işletim sisteminize uygun olan sürümü indirin. Kurulum oldukça basittir; sadece yönergeleri takip etmeniz yeterli.
# Adım 2: Docker Compose Kurulumu
Docker Compose, birden fazla konteyneri yönetmenizi sağlayan bir araçtır. Laravel gibi uygulamalar genellikle veritabanı ve diğer servislerle birlikte çalıştığı için, Docker Compose kullanmak oldukça faydalıdır. Docker Compose’ı kurmak için aşağıdaki komutu kullanabilirsiniz:
sudo apt install docker-compose
# Adım 3: Laravel Projenizi Docker’a Taşıma
Şimdi, Laravel projeniz için gerekli olan `docker-compose.yml` dosyasını oluşturacağız. Bu dosya, tüm servislere dair yapılandırmaları içerir. Örneğin, bir veritabanı ve web sunucusu kurulumu gibi. İşte basit bir `docker-compose.yml` örneği:
version: '3'
services:
app:
image: laravelphp/php-fpm
container_name: laravel-app
volumes:
- ./src:/var/www/html
networks:
- laravel
nginx:
image: nginx:alpine
container_name: nginx
volumes:
- ./src:/var/www/html
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "8080:80"
networks:
- laravel
db:
image: mysql:5.7
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel_db
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- laravel
networks:
laravel:
driver: bridge
Bu dosya, Laravel uygulamanız için PHP-FPM, Nginx ve MySQL servislerini kuracaktır. Projeyi başlatmak için aşağıdaki komutu kullanabilirsiniz:
docker-compose up -d
3. Laravel Projenizin Çalıştığını Kontrol Etme
Docker konteynerlerini başlattıktan sonra, projenizin düzgün çalışıp çalışmadığını kontrol edebilirsiniz. Tarayıcınızda `http://localhost:8080` adresine gidin. Eğer her şey doğru kurulduysa, Laravel’in varsayılan karşılama sayfası görünmelidir.
4. Docker ve Laravel ile Veritabanı Yönetimi
Laravel projelerinde veritabanı bağlantılarını yönetmek genellikle zorlu olabilir. Ancak Docker ile bu süreci çok daha kolay hale getirebilirsiniz. Yukarıda oluşturduğumuz `docker-compose.yml` dosyasında, MySQL veritabanını `db` servisi olarak ekledik. Laravel'in `.env` dosyasını aşağıdaki gibi yapılandırarak veritabanı bağlantısını gerçekleştirebilirsiniz:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=root
5. Docker ile Laravel’in Performansını Artırma
Docker, yalnızca projelerinizi taşınabilir kılmakla kalmaz, aynı zamanda geliştirme sürecinizi hızlandırabilir. Yerel geliştirme ortamlarında, bağımlılıkları ve konfigürasyonları yönetmek oldukça zorlayıcı olabilir. Docker ile, her proje için uygun ortamı anında kurarak daha hızlı bir şekilde çalışabilirsiniz. Ayrıca, konteynerleri kolayca başlatıp durdurabilir, gerektiğinde yeniden yapılandırabilirsiniz.
Sonuç
Docker ile Laravel geliştirme ortamı kurmak, projenizi her yerde aynı şekilde çalıştırmanızı sağlayan güçlü bir yöntemdir. Hızlıca sanal ortamlar oluşturmak, bağımlılıkları yönetmek ve projelerinizi taşınabilir hale getirmek, Docker’ı kullanmanın en büyük avantajlarıdır. Laravel’in güçlü özellikleriyle birleşen Docker, projelerinizi çok daha verimli hale getirecek!
Eğer Laravel geliştirme ortamınızı Docker ile optimize etmek istiyorsanız, bu rehber tam size göre. Docker sayesinde geliştirici deneyiminizi iyileştirebilir ve projelerinizi daha hızlı teslim edebilirsiniz. Artık her şey hazır, o zaman başlayın ve Laravel ile Docker dünyasına adım atın!