Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: 120MB’lık bir üretim Laravel Docker imajını nasıl oluşturdum (ve senin imajının muhtemelen 800MB olmasının nedeni)
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » 120MB’lık bir üretim Laravel Docker imajını nasıl oluşturdum (ve senin imajının muhtemelen 800MB olmasının nedeni)

Yazılım

120MB’lık bir üretim Laravel Docker imajını nasıl oluşturdum (ve senin imajının muhtemelen 800MB olmasının nedeni)

teknomers
Son güncelleme: 3 Haziran 2026 11:57
teknomers
Paylaş
Paylaş

Çoğu Laravel Docker eğitimi, 800MB boyutunda bir imaj üreten bir Dockerfile sunar. Ancak benim imajım sadece 120MB. İşte bu nasıl mümkün oldu ve neden önemli?


Tek Aşamalı Dockerfile’ın Sorunu

Composer, Node.js, npm ve tüm geliştirme bağımlılıklarını tek bir katmanda kurduğunuzda, her bir araç üretim imajınıza dahil olur. Bu durumda, imajınız gereksiz yere gigabaytlarca yazılım taşır ve bu yazılımların üretim sunucusunda hiçbir yeri yoktur.


Çözüm: Çok Aşamalı Yapılar

Docker, tek bir Dockerfile içinde birden fazla aşama tanımlamanıza olanak tanır. Aşama 1, Composer’ı kurar, npm’i çalıştırır ve Vite varlıklarınızı derler. Aşama 2 tamamen temiz başlar, sadece derlenmiş çıktıyı kopyalar ve başka hiçbir şeyi taşımaz.

# Aşama 1: builder — her şeyi kurar, varlıkları derler
FROM php:8.3-cli AS builder
RUN apt-get update && apt-get install -y git nodejs npm \
    && curl -sS https://getcomposer.org/installer | php \
    && mv composer.phar /usr/local/bin/composer

WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader

COPY package.json package-lock.json ./
RUN npm ci && npm run build

COPY . .

# Aşama 2: production — temiz başlar, yalnızca derlenmiş çıktıyı kopyalar
FROM php:8.3-fpm-alpine AS production

RUN apk add --no-cache nginx supervisor
COPY --from=builder /app /var/www/html
EXPOSE 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]


Sonuç

Tek AşamalıÇok Aşamalı
İmaj boyutu~800MB~120MB
Üretimde kurulu araçlarEvet (güvenlik riski)Hayır
Deploy hızıYavaşHızlı


Her Aşamada Ne Olmalı

Aşama 1 ihtiyacı olanlar: Composer, Node.js, npm, git, PHP uzantıları için geliştirme başlıkları. Aşama 2 ihtiyacı olanlar: PHP-FPM, Nginx, Supervisor ve derlenmiş uygulama. Başka hiçbiri değil.


COPY Sırasının Önemli Olması

composer.json dosyasını, diğer dosyalardan önce kopyalayın. Docker, her katmanı önbelleğe alır — eğer PHP dosyalarınız değişmezken composer.json değişmezse, Docker tüm paketlerin yeniden kurulumunu atlar. Bu, her bir derlemeden 2–3 dakika tasarruf sağlar.

COPY composer.json composer.lock ./   # bağımlılıklar değişmediği sürece önbelleğe alınacak
RUN composer install --no-dev
COPY . .                              # kod değişikliklerinde yalnızca bu katman tekrar çalışır


Kendiniz Deneyin

Basit bir Dockerfile ile bir kez derleyin, ardından çok aşamalı olanla derleyin. docker images komutunu çalıştırın ve boyutları karşılaştırın. Bu fark, Docker’a bakış açınızı sonsuza dek değiştirecektir.


Bütün bu yığın için — Docker, GitHub Actions CI/CD, Kubernetes ve SQLite’in üretim veritabanı olarak kullanımı hakkında 50 sayfa kapsamlı bir kılavuz yazdım. Tam kurulum için profilimdeki bağlantıyı bulabilirsiniz.

Kaynak: Orijinal Makale

Contents
  • Tek Aşamalı Dockerfile’ın Sorunu
  • Çözüm: Çok Aşamalı Yapılar
  • Sonuç
  • Her Aşamada Ne Olmalı
  • COPY Sırasının Önemli Olması
  • Kendiniz Deneyin
WordPress Geliştiricilerinin Laravel Öğrenmesi Gereken Nedenler
2026 Yılında Özel Laravel Geliştiricileri İstihdam Etmek için Ana Nedenler
Kismet Yazılımı Nasıl Kurulur ve Kullanılır?
Yığıtı Ustalaşmak: AI ile Güçlendirilmiş, Çok Amaçlı Full-Stack Başlangıç Kitini Oluşturma
Proje BookMyShow: Gün 6 – DEV Community
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Wolverine Oyun Fragmanı Jean Grey ile Birlikte Daha Fazla Karakter Sunuyor
Sonraki Makale Google Yayıncıların AI Arama Özelliklerinden Çıkış Yapmasına İzin Vermeli

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Apple ebeveynlere çocukların iPhone kullanımlarında yeniden kontrol sağlıyor
Genel
Apple Ekran Süresini Yeniden Tasarlıyor ve Çocuk Kontrollerini Gözden Geçiriyor
Liste
Kritik UniFi OS açığı: Hırsızlar kimlik doğrulamasız kök erişimi elde ediyor
Siber Güvenlik
Meta, Akıllı Gözlüklerindeki Yüz Tanıma Sistemini Kaldırdı!
Genel
WWDC 2026: Siri, iOS 27 ve Apple İnovasyonları Açıklandı
Yapay Zeka
Yeni ABD AI veri merkezleri su sıkıntısı çeken bölgelerde inşa ediliyor
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?