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.