Bir yazılım geliştiricisi olarak her geçen gün daha fazla teknoloji ile tanışıyorsunuz. Çalıştığınız projeler büyüdükçe, bu projeleri yönetmek ve sürdürülebilir bir şekilde geliştirmek daha karmaşık hale geliyor. Ancak Docker gibi modern araçlar sayesinde, bu karmaşayı ortadan kaldırmak mümkün! Docker, uygulamalarınızı her ortamda tutarlı bir şekilde çalıştırmanıza olanak tanır, ki bu da geliştirici olarak işinizi oldukça kolaylaştırır. Peki, Symfony uygulamanızı Docker ile entegre etmek nasıl olur?
Bu yazıda, Symfony uygulamanızı Docker ile hızlıca nasıl çalıştırabileceğinizi adım adım keşfedeceğiz. Docker'ı Symfony ile nasıl entegre edebileceğinizi ve karşılaşabileceğiniz yaygın hataları nasıl çözeceğinizi öğreneceksiniz. Hazır mısınız? O zaman başlayalım!
1. Docker’ı Bilmediklerinizle Tanıyın
Docker, uygulamanız için bir "container" (kapsayıcı) oluşturur ve bu container, her türlü bağımlılık, PHP sürümü, Symfony yapılandırması gibi her şeyle beraber uygulamanız için tam bir ortam sağlar. Geliştirici bilgisayarınızda nasıl çalışıyorsa, başka bir ortamda da öyle çalışır.
2. Docker ve Symfony için Gerekli Araçlar
- Docker: Docker'ı bilgisayarınıza kurmanız gerekir. Docker’ın resmi sitesinden Docker Desktop sürümünü indirip kurabilirsiniz.
- Symfony: Symfony framework’ünü de kurmanız gerekiyor. Ancak Docker sayesinde bu adım, daha az uğraşla gerçekleştirilebilir. Symfony’nin en son sürümünü kurduğunuzdan emin olun.
3. Symfony İçin Docker Ortamı Oluşturmak
Öncelikle projenizin kök dizininde Dockerfile adında bir dosya oluşturun ve içine aşağıdaki kodu ekleyin:
# PHP'nin en son sürümünü kullan
FROM php:8.1-fpm
# Gerekli uzantıları yükleyin
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev zip git \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd pdo pdo_mysql
# Çalışma dizinini ayarlayın
WORKDIR /var/www
# Uygulamanızı konteynıra kopyalayın
COPY . .
# Symfony CLI'yi yükleyin
RUN curl -sS https://get.symfony.com/cli/installer | bash
RUN mv /root/.symfony*/bin/symfony /usr/local/bin/symfony
# Symfony uygulamanızın bağımlılıklarını kurun
RUN symfony install
Bu basit Dockerfile, PHP'nin doğru sürümünü kullanır, gerekli uzantıları kurar ve Symfony CLI’yi yükler. Sonrasında Symfony bağımlılıkları kurulacak ve uygulamanız Docker ortamında çalışmaya hazır olacaktır.
4. Docker Compose ile Çalışma Ortamı Oluşturma
Aşağıdaki örnek docker-compose.yml dosyasını projenizin kök dizininde oluşturun:
version: '3.8'
services:
php:
build: .
container_name: symfony_php
volumes:
- .:/var/www
ports:
- "9000:9000"
networks:
- symfony_network
db:
image: mysql:5.7
container_name: symfony_db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: symfony
ports:
- "3306:3306"
networks:
- symfony_network
networks:
symfony_network:
driver: bridge
Bu dosya, Symfony uygulamanızı çalıştıran PHP container'ını ve veritabanı olarak MySQL kullanan bir DB container'ını başlatır. Docker Compose ile her iki servisi aynı anda çalıştırabilirsiniz.
5. Uygulamanızın Çalışmasını Sağlamak
```bash
docker-compose up --build
```
Bu komut, Symfony uygulamanız ve veritabanı servisinizi başlatacak. Artık tarayıcınızda http://localhost:9000 adresini ziyaret ederek Symfony uygulamanızın çalıştığını görebilirsiniz!
6. Yaygın Hatalar ve Çözümleri
- Veritabanı bağlantı hatası: Eğer "could not find driver" hatası alıyorsanız, PHP’nin MySQL uzantılarının doğru şekilde kurulduğundan emin olun.
- Bağımlılık yükleme hataları: Eğer `symfony install` komutu başarısız olursa, container'ın içinde gerekli olan PHP sürümünü ve Symfony sürümünü kontrol edin.
- Port çakışması: Eğer portlar çakışıyorsa, docker-compose.yml dosyasındaki port numarasını değiştirmeyi deneyin.
7. Sonuç
Şimdi, her şey hazır! Kendi Docker tabanlı Symfony ortamınızı kurarak geliştirmeye başlayabilirsiniz.