design

Laravel’de Docker Kullanımı: Geliştirme Ortamınızı Optimize Edin

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel’de Docker kullanımı konusunu anlatacağım. Docker, geliştirme ortamınızı hızlı ve tutarlı bir şekilde kurmanızı sağlayan bir konteynerleştirme platformudur. Laravel ile Docker’ı bir araya getirerek, geliştirme sürecinizi optimize edebilir ve farklı ortamlarda uyum sorunlarını ortadan kaldırabilirsiniz. Gelin, bu konuları adım adım inceleyelim.


Docker Nedir?

Docker, uygulamalarınızı konteynerler içinde çalıştırmanızı sağlayan bir platformdur. Konteynerler, uygulamanızın çalışması için gerekli tüm bağımlılıkları içerir ve farklı ortamlarda tutarlı bir şekilde çalışmasını sağlar. Bu sayede, geliştirme, test ve üretim ortamları arasında uyum sorunları yaşamazsınız.


Laravel’de Docker Kullanımı

Laravel’de Docker kullanmak için öncelikle bir Dockerfile ve docker-compose.yml dosyası oluşturmanız gerekiyor. Bu dosyalar, uygulamanızın çalışması için gerekli konteynerleri tanımlar.


Dockerfile Oluşturma

Dockerfile, uygulamanızın çalışması için gerekli ortamı tanımlar. Örneğin, bir Laravel uygulaması için aşağıdaki gibi bir Dockerfile oluşturabilirsiniz:


# Temel görüntüyü seçin
FROM php:8.1-fpm

# Gerekli bağımlılıkları yükleyin
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

# PHP eklentilerini yükleyin
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# Composer'ı yükleyin
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Çalışma dizinini ayarlayın
WORKDIR /var/www/html

# Uygulama dosyalarını kopyalayın
COPY . .

# Bağımlılıkları yükleyin
RUN composer install --optimize-autoloader --no-dev

# İzinleri ayarlayın
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache

# Uygulamayı çalıştırın
CMD ["php-fpm"]


Bu Dockerfile, PHP 8.1 ve gerekli eklentileri içeren bir konteyner oluşturur. Ayrıca, Composer ile bağımlılıkları yükler ve uygulamayı çalıştırır.

docker-compose.yml Dosyası Oluşturma

docker-compose.yml dosyası, uygulamanızın çalışması için gerekli tüm servisleri (örneğin, web sunucusu, veritabanı) tanımlar. Örneğin, bir Laravel uygulaması için aşağıdaki gibi bir docker-compose.yml dosyası oluşturabilirsiniz:


version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: laravel_app
    restart: unless-stopped
    working_dir: /var/www/html
    volumes:
      - .:/var/www/html
    networks:
      - laravel_network

  webserver:
    image: nginx:alpine
    container_name: laravel_webserver
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
      - ./docker/nginx:/etc/nginx/conf.d
    networks:
      - laravel_network

  db:
    image: mysql:5.7
    container_name: laravel_db
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
    ports:
      - "3306:3306"
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - laravel_network

  redis:
    image: redis:alpine
    container_name: laravel_redis
    restart: unless-stopped
    ports:
      - "6379:6379"
    networks:
      - laravel_network

volumes:
  dbdata:
    driver: local

networks:
  laravel_network:
    driver: bridge


Bu dosya, dört servis tanımlar:

  • app: Laravel uygulamasını çalıştıran PHP-FPM konteyneri.
  • webserver: Nginx web sunucusu.
  • db: MySQL veritabanı.
  • redis: Redis cache sunucusu.



Docker ile Uygulamayı Çalıştırma

Dockerfile ve docker-compose.yml dosyalarını oluşturduktan sonra, uygulamanızı Docker ile çalıştırabilirsiniz. Aşağıdaki komutları kullanarak konteynerleri başlatabilirsiniz:


docker-compose build
docker-compose up -d


Bu komutlar, tanımlanan servisleri başlatır ve uygulamanızı http://localhost:8080 adresinde kullanıma hazır hale getirir.


Laravel’de Docker Kullanmanın Avantajları

  • Tutarlılık: Docker, geliştirme, test ve üretim ortamları arasında tutarlılık sağlar.
  • Hız: Docker, geliştirme ortamınızı hızlı bir şekilde kurmanızı sağlar.
  • Esneklik: Farklı servisleri kolayca ekleyebilir veya kaldırabilirsiniz.

Laravel Sail ile Docker Kullanımı


Laravel, Docker kullanımını kolaylaştırmak için Sail adında bir araç sunar. Sail, Laravel uygulamaları için önceden yapılandırılmış bir Docker ortamı sağlar.


Sail Kurulumu:

composer require laravel/sail --dev
php artisan sail:install


Bu komutlar, Sail’i projenize ekler ve gerekli Docker dosyalarını oluşturur. Ardından, aşağıdaki komutla uygulamanızı çalıştırabilirsiniz:



./vendor/bin/sail up



Laravel’de Docker kullanımı, geliştirme ortamınızı optimize etmenin en etkili yollarından biridir. Eğer farklı ortamlarda uyum sorunları yaşıyorsanız veya geliştirme sürecinizi hızlandırmak istiyorsanız, Docker’ı mutlaka denemelisiniz. Bir sonraki yazımda, Laravel’de SEO Dostu URL’ler Oluşturma konusuna değineceğim. Görüşmek üzere!

4 + 0 =