Laravel 11 Öğreniyoruz: Docker Ortamında Laravel 11 Kurulumu

Laravel 11 Öğreniyoruz: Docker Ortamında Laravel 11 Kurulumu

Laravel 11 serimizin bu bölümünde, Docker kullanarak Laravel 11'i nasıl kurabileceğinizi adım adım açıklayacağız. Docker, uygulamalarınızı konteynerize ederek bağımlılıkları ve ortamı izole etmenize olanak tanır. Bu rehberde, Laravel 11'i Docker kullanarak kuracak ve çalıştıracağız.

Adım 1: Docker ve Docker Compose'u Yükleyin

Laravel 11'i Docker ile çalıştırmak için öncelikle Docker ve Docker Compose'u sisteminize kurmanız gerekecek. Eğer bu araçlar henüz kurulu değilse, aşağıdaki adımları izleyin:

  1. Docker'ı Yükleyin: Docker'ın resmi sitesinden Docker'ı indirip kurun.

  2. Docker Compose'u Yükleyin: Docker ile birlikte Docker Compose da yüklenmiş olacaktır.

Docker'ın doğru bir şekilde kurulduğunu doğrulamak için terminalde şu komutları çalıştırabilirsiniz:

docker --version
docker-compose --version

Adım 2: Laravel Projesi İçin Docker Dosyalarını Hazırlayın

Laravel projesini Docker ile çalıştırmak için Dockerfile, docker-compose.yml ve nginx.conf gibi bazı yapılandırma dosyalarına ihtiyacınız olacak.

Adım 2.1: Dockerfile Oluşturun

Proje dizininizde bir Dockerfile oluşturun ve aşağıdaki içeriği ekleyin:

# Base image
FROM php:8.1-fpm

# Set working directory
WORKDIR /var/www

# Install dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    curl \
    unzip \
    git \
    nano

# Install PHP extensions
RUN docker-php-ext-install pdo pdo_mysql mbstring exif pcntl bcmath gd

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Copy existing application directory contents
COPY . /var/www

# Copy existing application directory permissions
COPY --chown=www-data:www-data . /var/www

# Change current user to www
USER www-data

# Expose port 9000 and start php-fpm server
EXPOSE 9000
CMD ["php-fpm"]

Adım 2.2: docker-compose.yml Dosyasını Oluşturun

Aynı dizinde bir docker-compose.yml dosyası oluşturun ve aşağıdaki içeriği ekleyin:

version: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: laravel-app
    container_name: laravel-app
    restart: unless-stopped
    working_dir: /var/www
    volumes:
      - .:/var/www
      - ./vendor:/var/www/vendor
      - ./storage:/var/www/storage
    networks:
      - laravel

  webserver:
    image: nginx:alpine
    container_name: nginx
    restart: unless-stopped
    ports:
      - "8000:80"
    volumes:
      - .:/var/www
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    networks:
      - laravel

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

networks:
  laravel:

volumes:
  dbdata:

Adım 2.3: nginx.conf Dosyasını Oluşturun

Proje dizininizde bir nginx.conf dosyası oluşturun ve aşağıdaki içeriği ekleyin:

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Adım 3: Docker Konteynerlerini Başlatın

Yapılandırma dosyalarını oluşturduktan sonra, Docker konteynerlerini başlatmak için terminalde aşağıdaki komutu çalıştırın:

docker-compose up -d

Bu komut, gerekli Docker konteynerlerini başlatır ve Laravel uygulamanızı Docker üzerinde çalıştırır.

Adım 4: Laravel Projesini Tarayıcıda Kontrol Edin

Docker konteynerleri başlatıldıktan sonra, tarayıcınızı açın ve http://localhost:8000 adresine giderek Laravel 11'in başarılı bir şekilde kurulduğunu doğrulayın. Eğer Laravel'in varsayılan hoş geldin sayfasını görüyorsanız, kurulum başarıyla tamamlanmıştır!

Sonuç

Bu yazıda, Docker kullanarak Laravel 11'i nasıl kurabileceğinizi öğrendiniz. Docker, Laravel uygulamalarınızı konteynerize etmek ve taşınabilir hale getirmek için güçlü bir araçtır. Bu rehber ile Laravel 11'i Docker üzerinde çalıştırmayı başardınız.