class Docker ile Laravel, PHP, MySQL ve PostgreSQL Kullanımı extends Post

@created_at( "2025-01-14 10:26" )
Docker, yazılım geliştirme süreçlerini kolaylaştıran güçlü bir araçtır. Laravel projelerinde Docker kullanarak uygulamalarınızı konteynerize edebilir, bağımlılıkları kolayca yönetebilir ve farklı ortamlar arasında tutarlılık sağlayabilirsiniz. Bu yazıda, Docker Compose ile Laravel, PHP, MySQL ve PostgreSQL entegrasyonu adım adım anlatılacaktır. ## Başlangıç Docker kurulu olduğundan emin olun: - Docker Desktop (Windows/MacOS) - Docker Engine (Linux) ### Gerekli Dosyalar `docker-compose.yml` ve diğer ilgili dosyalar, Laravel projesi için gereken ortamları tanımlar. ### Örnek docker-compose.yml Aşağıdaki örnek, Laravel için PHP, MySQL ve PostgreSQL servislerini içerir:
dersion: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: laravel_app
    ports:
      - "8000:8000"
    volumes:
      - .:/var/www/html
    networks:
      - laravel_network

  php-fpm:
    image: php:8.2-fpm
    container_name: php_fpm
    volumes:
      - .:/var/www/html
    networks:
      - laravel_network

  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
    ports:
      - "3306:3306"
    networks:
      - laravel_network

  postgres:
    image: postgres:15
    container_name: postgres
    environment:
      POSTGRES_DB: laravel
      POSTGRES_USER: laravel
      POSTGRES_PASSWORD: laravel
    ports:
      - "5432:5432"
    networks:
      - laravel_network

networks:
  laravel_network:
    driver: bridge
### Dockerfile Laravel için gerekli olan PHP uzantılarını yüklemek için bir Dockerfile oluşturun:
FROM php:8.2-fpm

RUN apt-get update && apt-get install -y \
    libpq-dev \
    libzip-dev \
    unzip \
    && docker-php-ext-install pdo pdo_mysql pdo_pgsql zip

WORKDIR /var/www/html
## Docker Komutları ### 1. Servisleri Kapatma Projeyi durdurmak için aşağıdaki komut kullanılır:
docker-compose down
### 2. Servisleri Başlatma Docker Compose ile tüm servisleri başlatabilirsiniz:
docker-compose up -d
### 3. Servisleri Yeniden Oluşturma Güncellenmiş bir yapılandırma dosyasını yeniden oluşturmak için:
docker-compose up -d --build
### 4. Konteyner İçinde Komut Çalıştırma Laravel projelerinde PHP Artisan veya Composer gibi komutları çalıştırmak için: #### Bash Erişimi
docker-compose exec php-fpm bash
#### Composer Update
docker-compose exec app composer update
## Laravel Veritabanı Ayarları ### .env Dosyasını Güncelleyin Laravel projenizde, veritabanı bağlantı bilgilerini güncelleyin: #### MySQL için:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel
#### PostgreSQL için:
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel
### Migration Çalıştırma Veritabanı tablolarını oluşturmak için:
docker-compose exec app php artisan migrate
## Notlar - `docker-compose up -d` komutu arka planda çalışır. - `docker-compose exec` komutları konteyner içinde çalıştırılır. - MySQL ve PostgreSQL servislerini aynı anda kullanabilirsiniz. - `php-fpm` ve `app` konteynerleri arasında dosya paylaşımı sağlamak için `volumes` tanımlaması yapılmıştır. Bu temel yapılandırmayı kullanarak Laravel projelerinizi kolayca Docker üzerinde çalıştırabilirsiniz.