Docker Nedir ve Neden Kullanılır?
Günümüzde yazılım geliştirme dünyası hızla değişiyor ve her geçen gün yeni araçlar, teknolojiler ve yöntemler ortaya çıkıyor. Eğer bir geliştiriciyseniz, bu hızla değişen dünyada ayakta kalabilmek için sürekli olarak yeni şeyler öğrenmek zorundasınız. Bu yazımda, Docker'ı ve Symfony'yi kullanarak nasıl verimli bir proje geliştirebileceğinizi adım adım keşfedeceğiz.
Docker, uygulamanızı bir konteyner içinde çalıştıran açık kaynaklı bir platformdur. Bu konteynerler, tüm yazılım bağımlılıklarını bir arada tutarak uygulamanızın herhangi bir sistemde çalışmasını sağlar. Yani, bir bilgisayarın farklı sistem yapılandırmalarından bağımsız olarak, Docker sayesinde uygulamanız her ortamda aynı şekilde çalışır.
Docker ile projelerinizi daha taşınabilir hale getirirken, aynı zamanda her şeyin yalıtılmış bir ortamda çalışmasını sağlayarak, geliştirme ve üretim ortamlarındaki farklılıkları ortadan kaldırabilirsiniz. Peki ya Symfony? Symfony, PHP ile geliştirilmiş güçlü ve esnek bir framework. Docker ile Symfony’yi entegre etmek ise, projelerinizi hem geliştirme aşamasında hem de üretim ortamında çok daha verimli hale getirebilir.
Symfony Uygulamanızı Docker Konteynerine Taşıma
Docker ile Symfony'yi kullanmaya başlamak için, öncelikle Docker'ı bilgisayarınıza kurmanız gerekir. Docker kurulumunu tamamladıktan sonra, Symfony projenizi Docker içinde çalıştırmak oldukça basit hale gelir. İşte bunu nasıl yapabileceğiniz:
1. Symfony Projesi Oluşturma
Docker’ı kullanarak bir Symfony projesi başlatmadan önce, ilk adımınız Symfony'yi kurmak olmalı. Eğer Symfony kurulumuna dair deneyiminiz yoksa, Symfony'nin resmi dokümantasyonunu kullanarak rahatlıkla kurulum yapabilirsiniz.
Symfony kurulumunu başarıyla tamamladıktan sonra, Docker'ı kullanarak bu projeyi konteyner içinde çalıştırmak için birkaç yapılandırma adımını izlememiz gerekiyor.
2. Dockerfile Oluşturma
Projenizi Docker ortamında çalıştırabilmek için bir Dockerfile oluşturmanız gerekecek. Dockerfile, uygulamanızın çalışabilmesi için gereken tüm bağımlılıkları ve yapılandırmaları içeren bir dosyadır.
FROM php:8.1-fpm
# Sistem bağımlılıkları
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev git unzip
# PHP modülleri
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd pdo pdo_mysql
# Composer kurulumu
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Çalışma dizini
WORKDIR /var/www
# Uygulama dosyalarını kopyala
COPY . .
# Composer ile bağımlılıkları yükle
RUN composer install
# Portu expose et
EXPOSE 9000
CMD ["php-fpm"]
3. Docker Compose ile Veritabanı Servisi Ekleme
Symfony uygulamanızın bir veritabanına ihtiyacı varsa, Docker Compose kullanarak veritabanı servisini de konteyner ortamına dahil edebilirsiniz. Docker Compose, birden fazla konteyneri bir arada çalıştırmanıza yardımcı olur. İşte bir örnek `docker-compose.yml` dosyası:
version: '3.7'
services:
php:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www
ports:
- "9000:9000"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: symfony
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
volumes:
db_data:
4. Docker Konteynerlarını Çalıştırma
Docker Compose ile her şey hazır olduktan sonra, tüm konteynerleri başlatmak için şu komutu kullanabilirsiniz:
docker-compose up --build
Bu komut, PHP ve MySQL konteynerlarını başlatacak ve Symfony uygulamanızın çalışabilmesi için gerekli ortamı oluşturacaktır. Symfony’yi tarayıcınızda `localhost:9000` üzerinden test edebilirsiniz.
Symfony ve Docker ile Proje Yönetimi
Docker'ı kullanarak Symfony projenizi başlatmak ve çalıştırmak oldukça basit olsa da, konteyner yönetimi ve güncelleme işlemleri için de bazı ipuçlarına ihtiyacınız olabilir.
1. Konteyner Güncellemeleri
Konteynerlerinizin güncel kalması çok önemlidir. Dockerfile’ınızı ve `docker-compose.yml` dosyanızı gerektiğinde güncelleyerek, her yeni versiyona kolayca geçiş yapabilirsiniz.
2. Veritabanı Yönetimi
Symfony projelerinizin veritabanını Docker Compose ile yönetmek oldukça pratik. Ancak, büyük projelerde veritabanı yedeklemeleri ve diğer yönetim işlemleri de önemli olacaktır. Docker Compose ile yedeklemeler ve veri taşımak çok kolay hale gelir.
Sonuç
Symfony ile Docker’ı entegre etmek, projelerinizi geliştirirken size büyük kolaylık sağlar. Symfony’yi Docker konteynerleri içinde çalıştırarak, projelerinizin taşınabilirliğini artırabilir ve geliştirme ortamınızın tutarlılığını sağlayabilirsiniz. Bu yazıda, Symfony projesini Docker ile nasıl başlatacağınızı ve yönetebileceğinizi öğrendiniz. Docker ve Symfony'yi bir arada kullanarak, uygulama geliştirme sürecinizi hızlandırabilir ve daha verimli hale getirebilirsiniz.