
DockerPHP geliştiricileri, PHP 8 uygulamalarının paketlenme, dağıtılma ve kurulma süreçlerinde devrim yarattı. Docker teknolojisi ile tutarlı ve izole geliştirme, test ve üretim ortamları oluşturabilirler. İşte kapsayıcılaştırma için stratejileri inceleme fırsatımız var. PHP 8'in Docker ile nasıl etkili bir şekilde kullanılabileceğini inceleyeceğiz.
1. Docker'ı Anlama
Docker, bir uygulamayı ve bağımlılıklarını kapsayıcı Buna örnek olarak, "Docker, MMOZirve için tek bir birim olarak paketleme işlemlerimize büyük kolaylıklar sunan hafif ve taşınabilir bir kapsayıcılaştırma platformudur." kapsayıcı kalıplarını (image) kullanır.2. Docker ve PHP
PHP geliştiricileri, Docker'dan çeşitli şekillerde faydalanabilir:- Tutarlılık: Docker, PHP uygulamanızın farklı geliştirme makinelerinde ve üretim sunucularında tutarlı bir şekilde çalışmasını sağlayarak "benim makinemde çalışıyordu" sorununu azaltır.
- İzolasyon: Her kapsayıcı izole edilmiştir, böylece aynı ana bilgisayarda farklı yapılandırmalara sahip birden fazla PHP uygulamasını çakışma olmadan çalıştırabilirsiniz.
- Sürüm Kontrolü: Docker kalıpları sürümlenebilir, bu da uygulamanızın ihtiyaç duyduğu tam ortamı ve bağımlılıkları belirtmenize olanak tanır.
- Ölçeklenebilirlik: Docker kapsayıcıları yatay olarak kolayca ölçeklenebilir, bu da onları mikro hizmet mimarileri için uygun hale getirir.
3. Dockerize Edilmiş Bir PHP Uygulaması Oluşturma
Dockerize edilmiş bir PHP uygulaması oluşturmak için şu genel adımları izleyin:- Docker'ı Kurun: Geliştirme makinenize ve PHP uygulamanızı dağıtmayı planladığınız tüm sunuculara Docker'ı kurun.
- Bir Dockerfile Oluşturun: PHP projenizin kök dizininde bir Dockerfile oluşturun. Bu dosya, uygulamanız için bir Docker kalıbı oluşturma talimatlarını tanımlar.
-
Kod:
# Temel kalıp olarak resmi bir PHP kalıbı kullanın FROM php:8.0-fpm # Kapsayıcı içinde çalışma dizinini ayarlayın WORKDIR /var/www/html # PHP uygulama kodunuzu kapsayıcıya kopyalayın COPY . /var/www/html # PHP uzantılarını ve bağımlılıklarını kurun RUN docker-php-ext-install pdo pdo_mysql # PHP uygulamanızın çalışacağı bağlantı noktasını (port) dışarıya açın EXPOSE 9000 # PHP-FPM'i başlatın CMD ["php-fpm"] - Docker Kalıbını Oluşturun: Docker kalıbını oluşturmak için Dockerfile'ınızla aynı dizinde aşağıdaki komutu çalıştırın:
-
Kod:
docker build -t my-php-app . - Bir Docker Kapsayıcısı Çalıştırın: Kalıp oluşturulduktan sonra bir Docker kapsayıcısı çalıştırabilirsiniz:
-
Kod:
Bu komut bir PHP-FPM kapsayıcısı çalıştırır ve kapsayıcının 9000 numaralı bağlantı noktasını ana bilgisayarınızdaki 8080 numaralı bağlantı noktasına açar.docker run -d -p 8080:9000 my-php-app - PHP Uygulamanıza Erişin: Bir web tarayıcısı açın ve Docker kapsayıcısında çalışan PHP uygulamanıza erişmek için http://localhost:8080 adresine gidin.
4. Çoklu Kapsayıcı Uygulamaları için Docker Compose
PHP, bir veritabanı ve bir web sunucusu gibi birden çok hizmete sahip karmaşık uygulamalar için Docker Compose değerli bir araçtır. Bir YAML dosyası kullanarak çoklu kapsayıcı uygulamaları tanımlamanıza ve yönetmenize olanak tanır.İşte bir PHP ve MySQL uygulaması için örnek bir docker-compose.yml dosyası:
Kod:
version: '3'
services:
web:
image: my-php-app # Yukarıda oluşturduğunuz kalıbı kullanır
ports:
- '8080:9000'
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: my-secret-password
MYSQL_DATABASE: mydatabase
Uygulamayı docker-compose up komutuyla çalıştırın; Docker Compose kapsayıcıları, ağı ve birimleri sizin için yönetecektir.5. PHP'yi Dockerize Etmenin Faydaları
Docker, PHP geliştirme ve dağıtımı için çeşitli faydalar sunar:- Tutarlılık: PHP uygulamanızın farklı ortamlarda tutarlı bir şekilde çalışmasını sağlayın.
- Bağımlılık Yönetimi: PHP uzantılarını, web sunucularını, veritabanlarını ve diğer bağımlılıkları kapsayıcılarda kolayca yönetin.
- İzolasyon: Uygulamanızın farklı kısımlarını izole edin, bu da ölçeklendirmeyi ve sorun gidermeyi kolaylaştırır.
- Sürüm Kontrolü: Değişiklikleri izlemek ve gerekirse önceki sürümlere geri dönmek için Docker kalıplarınızı sürümlendirin.
- Verimli Dağıtım: Docker kapsayıcılarını üretim sunucularına, bulut platformlarına veya Kubernetes kümelerine hızla dağıtın.
- İşbirliği: İşbirliğini basitleştirerek Docker kalıplarını ekip üyeleri ve diğer geliştiricilerle paylaşın.


