Geliştiriciler İçin En Güçlü İkili: Docker ve Laravel
Web geliştirme dünyasında, işlerinizi kolaylaştıran araçları bulmak büyük bir avantaj. İki güçlü araç, Docker ve Laravel, geliştiricilerin iş akışlarını çok daha verimli hale getirebilir. Docker, uygulamanızı izole edilmiş bir ortamda çalıştırmanızı sağlar, Laravel ise PHP ile uygulama geliştirmeyi daha hızlı ve düzenli hale getirir. Peki, bu iki aracı nasıl birleştirirsiniz? İşte adım adım Docker ve Laravel entegrasyonunu kurma rehberiniz.
Docker Nedir ve Neden Laravel ile Kullanılır?
Docker, yazılım uygulamalarını konteynerlar içerisinde çalıştırmanızı sağlayan bir platformdur. Bu konteynerlar, yazılımın tüm bağımlılıklarını ve ortam yapılandırmalarını içerdiği için, her yerde tutarlı bir şekilde çalışmasını sağlar. Laravel ise PHP tabanlı, modern ve güçlü bir framework'tür. Laravel'in kolayca yapılandırılabilir yapısı, geliştiricilerin hızlı bir şekilde projeler geliştirmelerine olanak tanır.
Docker ve Laravel'i birleştirdiğinizde, projelerinizi hem geliştirme hem de üretim ortamlarında aynı şekilde çalıştırmak mümkün hale gelir. Bu, özellikle ekiplerde çalışan geliştiriciler için dev ortamını kurmayı çok daha basit ve yönetilebilir hale getirir.
Adım Adım Docker ve Laravel Ortamını Kurmak
1. Docker'ı Yükleyin
İlk adım olarak, Docker'ı bilgisayarınıza kurmanız gerekiyor. Docker'ın son sürümünü [Docker'ın resmi sitesinden](https://www.docker.com/products/docker-desktop) indirip kurabilirsiniz. Kurulumdan sonra, Docker'ın çalışıp çalışmadığını kontrol etmek için terminalde aşağıdaki komutu yazabilirsiniz:
docker --versionBu komut, yüklü Docker sürümünü gösterecektir.
2. Laravel Projesi Başlatın
Laravel ile yeni bir proje başlatmak için terminalde şu komutu kullanabilirsiniz:
composer create-project --prefer-dist laravel/laravel myprojectBu komut, Laravel'in son sürümünü indirip "myproject" adında bir klasöre kuracaktır.
3. Dockerfile ve Docker Compose Dosyalarını Oluşturun
Docker ile Laravel projenizi çalıştırabilmek için bazı yapılandırmalar yapmanız gerekiyor. Projeye Dockerfile ve docker-compose.yml dosyalarını eklemeniz gerekiyor.
İlk olarak, Dockerfile’ı oluşturalım. Bu dosya, Laravel projenizi bir Docker konteynerinde çalıştırmak için gerekli talimatları içerir.
FROM php:8.0-fpm
# Çalışma dizinini belirliyoruz
WORKDIR /var/www
# Gerekli sistem paketlerini yüklüyoruz
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev zlib1g-dev git unzip libzip-dev
# Composer'ı indiriyoruz
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Laravel için gerekli PHP uzantılarını kuruyoruz
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd pdo pdo_mysql zip
# Laravel projelerini kopyalıyoruz
COPY . .
# Composer ile bağımlılıkları kuruyoruz
RUN composer install
EXPOSE 9000
CMD ["php-fpm"]Dockerfile, PHP'nin FPM sürümünü kullanarak Laravel'i çalıştırmak için gerekli adımları içeriyor. Ayrıca Composer'ı indiriyor ve Laravel için gerekli PHP uzantılarını kuruyor.
Bir de docker-compose.yml dosyası eklemeniz gerekiyor. Bu dosya, projenizin konteynerlerde nasıl çalıştırılacağını tanımlar.
version: '3.8'
services:
app:
build:
context: .
container_name: laravel_app
ports:
- "9000:9000"
volumes:
- .:/var/www
networks:
- app-network
db:
image: mysql:5.7
container_name: mysql_db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
ports:
- "3306:3306"
networks:
- app-network
networks:
app-network:
driver: bridgeBu dosya, PHP-FPM konteynerini ve MySQL veritabanını tanımlar. Laravel uygulamanız, PHP-FPM konteyneri içinde çalışacak ve MySQL ise veritabanı sunucusu olarak kullanılacak.
4. Docker'ı Çalıştırın
Son olarak, Docker konteynerlerini başlatmak için terminalde şu komutu çalıştırabilirsiniz:
docker-compose up -dBu komut, tüm servisleri arka planda çalıştırır ve Laravel uygulamanızı erişilebilir hale getirir.
Sonuç ve Avantajlar
Docker ile Laravel projelerinizi çalıştırmak, geliştirme ortamınızı çok daha taşınabilir ve tutarlı hale getirir. Artık uygulamanızı farklı makinelerde, hatta farklı işletim sistemlerinde bile aynı şekilde çalıştırabilirsiniz. Ayrıca, Laravel ve Docker’ın sağladığı verimlilik sayesinde, projelerinizi daha hızlı bir şekilde geliştirebilir ve dağıtabilirsiniz.
Geliştiriciler İçin İpuçları
Veritabanı Yedekleme: Docker kullanırken, veritabanı yedeklemelerini düzenli olarak yapmayı unutmayın. Bu, veri kaybını önleyecektir.
Docker İmajını Güncelleme: Docker konteynerlerini güncel tutmak için, düzenli olarak imajları yeniden oluşturun ve güncelleyin.
Ayrıca, projelerinizi test ederken Docker'ın sağladığı izole ortamda çalışmanın, daha sağlıklı bir geliştirme süreci sunacağını unutmayın.