Kendi Dockerfile'ın
Otomatik algılama çoğu proje için yeter. Kurulumun özelse kontrolü tamamen sen alabilirsin.
Ne zaman gerekir?
- Sistem paketi kurman gerekiyor (görüntü işleme, PDF, özel bir kütüphane).
- Derleme birden çok adımlı ve sıralı.
- Belirli bir dil sürümüne sabitlenmen gerekiyor.
- Aynı repoda birden çok uygulama var.
Nasıl kullanılır?
Reponun köküne bir Dockerfile koy. Varlığı yeterli — derleme onu görür, otomatik algılamayı atlar ve dosyanı kullanır.
FROM php:8.3-fpm-alpine
RUN apk add --no-cache nginx supervisor icu-dev \
&& docker-php-ext-install pdo_mysql intl opcache
WORKDIR /var/www/html
COPY . .
RUN composer install --no-dev --optimize-autoloader
EXPOSE 8080
CMD ["php-fpm"]
Dikkat edilecekler
- Portu açıkça belirt. Uygulaman hangi portu dinliyorsa
EXPOSEile bildir ve gerçekten o portu dinlediğinden emin ol. - Kalıcı veriyi imaja yazma. Yüklemeler ve veritabanı dizinleri bir diske bağlanmalı; imaj katmanı her dağıtımda sıfırlanır.
- Sırları imaja gömme. Anahtarları
Dockerfile'a yazma; ortam değişkeni olarak ver. - Katmanları sıraya koy. Önce bağımlılık dosyalarını kopyalayıp kurulumu yap, kaynak kodu sonra kopyala — böylece kod değiştiğinde bağımlılık katmanı önbellekten gelir.
Hazır imaj kullanmak
Dockerfile yazmak yerine bir kayıt defterindeki hazır imajı doğrudan da dağıtabilirsin. Yeni dağıtımda kaynak olarak imaj etiketini ver (kullanici/imaj:etiket). Özel kayıt defterleri için konsolda Ayarlar → Registry altında kimlik bilgisi tanımlarsın.