Takip et

Ubuntu 22.04’te Docker Compose ile Laravel Kurulumu ve Yapılandırması

# Laravel’i Ubuntu 22.04’te Docker Compose ile Kurma: Adım Adım Kılavuz

Modern web uygulamaları geliştirmek için güçlü bir altyapıya ihtiyaç duyarsınız. Karmaşık bağımlılıkları yönetmek, farklı ortamlarda tutarlılık sağlamak ve geliştirme sürecini hızlandırmak için Docker ve Docker Compose mükemmel bir çözüm sunar. Bu makalede, Laravel framework’ünü Ubuntu 22.04 üzerine Docker Compose kullanarak nasıl kuracağınızı ve yapılandıracağınızı adım adım öğreneceksiniz. Bu kılavuz, yeni başlayanlardan ileri seviye geliştiricilere kadar herkes için faydalı bilgiler içermektedir.

Temel Kavramlar: Docker, Docker Compose ve Laravel

Öncelikle, kullanacağımız temel teknolojileri kısaca inceleyelim.

Docker: Uygulamalarınızı ve bağımlılıklarını içeren kapsayıcılar (containers) oluşturmanızı sağlayan bir platformdur. Her kapsayıcı, izole edilmiş bir ortamda çalışır ve işletim sisteminizin diğer parçalarından bağımsızdır. Bu, geliştirme, test ve üretim ortamlarında tutarlılık sağlar. Bir Linux sunucusunda PHP, MySQL ve diğer bağımlılıklarınızı yöneterek, işletim sistemi kaynaklarını daha etkin kullanırsınız. Docker sayesinde, geliştirme ortamınızı kolayca çoğaltabilirsiniz.

Docker Compose: Birden fazla Docker kapsayıcısını yönetmeyi kolaylaştıran bir araçtır. docker-compose.yml dosyasıyla kapsayıcıların nasıl oluşturulacağını, birbirleriyle nasıl iletişim kuracaklarını ve hangi portları kullanacaklarını tanımlarsınız. Bu, karmaşık uygulamaların yönetimini basitleştirir.

Laravel: PHP tabanlı, popüler bir açık kaynaklı web uygulama framework’üdür. Eloquent ORM, güçlü routing sistemi, ve geniş bir ekosistem ile geliştirme sürecini hızlandırır ve uygulamalarınızın ölçeklenebilirliğini artırır. Laravel’in getirdiği kolaylıklar sayesinde, zamanınızın büyük bir kısmını tekrarlayan kod yazmak yerine, iş mantığına odaklanabilirsiniz.

1. Sistem Hazırlığı: Ubuntu 22.04’te Docker ve Docker Compose Kurulumu

Öncelikle, Ubuntu 22.04 sisteminize Docker ve Docker Compose’u kurmanız gerekir. Bunun için aşağıdaki adımları izleyin:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
sudo systemctl restart docker

Kurulumdan sonra, docker version ve docker-compose version komutlarıyla sürümleri doğrulayın. Kullanıcı grubunuza docker grubunu ekleyerek, sudo kullanmadan Docker komutlarını çalıştırabilirsiniz. Sisteminizi yeniden başlatmanız gerekebilir.

2. Laravel Projesi Oluşturma ve Docker Compose Dosyası Hazırlama

Bir Laravel projesi oluşturalım ve Docker Compose dosyasını yapılandıralım. Öncelikle, projenizin dizinini oluşturun ve içine girin:

mkdir my-laravel-project && cd my-laravel-project

Şimdi, Laravel projesini Composer kullanarak indirelim:

composer create-project --prefer-dist laravel/laravel .

Ardından, docker-compose.yml dosyasını oluşturun ve aşağıdaki içeriği ekleyin:

version: "3.9"
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:80"
    volumes:
      - ./:/var/www/html
      - ./vendor:/var/www/html/vendor
    depends_on:
      - db
    environment:
      - APP_ENV=local
      - DB_HOST=db
      - DB_PORT=3306
      - DB_DATABASE=laravel
      - DB_USERNAME=root
      - DB_PASSWORD=root

  db:
    image: mysql:8
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=laravel
      - MYSQL_USER=root
      - MYSQL_PASSWORD=root
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Bu dosya, web sunucusu ve MySQL veritabanı kapsayıcılarını tanımlar. Dockerfile dosyasını da oluşturmanız gerekiyor.

3. Dockerfile Oluşturma ve Web Sunucusu Yapılandırması

Projenizin kök dizinine Dockerfile adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

FROM php:8.1-apache

RUN docker-php-ext-install pdo pdo_mysql mbstring
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY ./ /var/www/html
RUN chown -R www-data:www-data /var/www/html
RUN composer install --no-interaction --optimize-autoloader --no-dev
RUN php artisan key:generate

EXPOSE 80

Bu dosya, PHP 8.1 ve Apache kullanan bir web sunucusu görüntüsü oluşturur. Gerekli PHP uzantılarını yükler, Composer’ı kurar, Laravel projesini kopyalar, bağımlılıkları yükler ve Laravel’in gizli anahtarını oluşturur.

4. Uygulamanın Çalıştırılması ve Veritabanı Göçleri

Artık Docker Compose kullanarak uygulamanızı çalıştırabilirsiniz:

docker-compose up -d

Bu komut, web sunucusu ve veritabanı kapsayıcılarını arka planda başlatır. Uygulamanın çalıştığından emin olmak için tarayıcınızda http://localhost:8000 adresini ziyaret edin. Laravel’in varsayılan karşılama sayfasını görmelisiniz.

Veritabanı göçlerini uygulamak için:

docker-compose exec web php artisan migrate

Bu komut, veritabanı şemalarını oluşturur.

5. Uygulamaya Özel Yapılandırmalar ve Ortam Değişkenleri

.env dosyanızı düzenleyerek uygulamanız için özel yapılandırmalar yapabilirsiniz. Örneğin, uygulama adı, veritabanı bağlantı bilgileri gibi ayarları burada düzenleyebilirsiniz. APP_ENV ortam değişkenini geliştirme, test veya üretim ortamlarına göre ayarlayabilirsiniz. Docker Compose dosyasında tanımladığınız ortam değişkenleri, kapsayıcılar içindeki uygulamanız tarafından kullanılabilir.

6. Gerçek Dünya Senaryoları: API Geliştirme ve Ölçeklendirme

Bu kurulumu bir REST API geliştirmek için kullanabilirsiniz. Laravel’in sağladığı kolay API oluşturma araçları ile hızlı ve verimli bir şekilde API’nizi geliştirebilirsiniz. Docker Compose’un sunduğu ölçeklendirme olanakları sayesinde, API’nizin yük altında performansını artırabilirsiniz. Örneğin, docker-compose.yml dosyasında web servisinin scale özelliğini kullanarak birden fazla web sunucusu kapsayıcısı çalıştırabilirsiniz.

7. Performans Optimizasyonu ve İleri Düzey Konular

Uygulamanızın performansını optimize etmek için çeşitli yöntemler kullanabilirsiniz. Örneğin, OpCache gibi PHP opcode önbellekleme mekanizmaları, uygulama yanıt sürelerini önemli ölçüde iyileştirebilir. Ayrıca, veritabanı sorgularınızı optimize etmek ve gereksiz disk I/O işlemlerini azaltmak da performansı artırır. docker-compose.yml dosyasında build kısmına ekleyeceğiniz optimizasyonlar, görüntünün boyutunu ve oluşturma süresini azaltabilir.

8. Sıkça Sorulan Sorular (SSS)

* Docker kapsayıcılarını nasıl durdururum? docker-compose down komutunu kullanın.
* Uygulamamda hata alıyorum, ne yapmalıyım? Hata mesajını dikkatlice inceleyin ve Docker loglarını kontrol edin (docker-compose logs). fatihsoysal.com gibi kaynaklardan yardım alabilirsiniz.
* Veritabanı kapsayıcısına nasıl erişebilirim? docker-compose exec db bash komutuyla veritabanı kapsayıcısına bağlanabilirsiniz.
* Başka bir veritabanı sistemi kullanabilir miyim? Evet, docker-compose.yml dosyasını değiştirerek farklı bir veritabanı görüntüsü kullanabilirsiniz.
* Üretim ortamına nasıl dağıtabilirim? Docker Compose’u kullanarak üretim ortamına dağıtım yapabilirsiniz. Ancak, üretim ortamı için daha gelişmiş konfigürasyonlar ve güvenlik önlemleri almanız gerekebilir. Bu konuda detaylı bilgi için fatihsoysal.com sitesini ziyaret edebilirsiniz.

Sonuç:

Bu makalede, Laravel’i Ubuntu 22.04’te Docker Compose ile kurma ve yapılandırma adımlarını detaylı bir şekilde inceledik. Docker ve Docker Compose, modern web uygulamaları geliştirme sürecinde büyük kolaylıklar sağlayan güçlü araçlardır. Bu kılavuzu izleyerek, hızlı, ölçeklenebilir ve yönetimi kolay bir Laravel geliştirme ortamı kurabilirsiniz. Unutmayın ki, performans optimizasyonu ve güvenlik önlemleri, herhangi bir üretim ortamı için kritik öneme sahiptir.

Yazar: Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version