Dockerfile Oluşturucu

Dockerfile Oluşturucu

Uygulamayı ayarla

Beş teknoloji yığınından birini seçin ve uygulamanızı gerçekten başlatan dosyayı veya paketi girin.

PHP-FPM, HTTP yerine dahili TCP portu 9000 üzerinden FastCGI sunar. Özel bir ağda FastCGI destekleyen bir web sunucusuna bağlayın. Bu portu internete açmayın.

Oluşturulan dosyaları inceleyin

Node.js, Python, PHP-FPM, Go veya Rust projesi için Dockerfile ve uyumlu bir .dockerignore oluşturun. Teknolojiyi seçin ve tahmini bir başlangıç komutuna güvenmek yerine kendi uygulamanızın kullandığı yolu veya ikili dosyayı girin. Çıktı, belirtilen bildirim dosyalarına sahip geleneksel bir proje için derlenebilir bir başlangıç noktasıdır. Dosyaları deponuza eklemeden önce ikisini de okuyun.

Dosyaları oluşturun ve kontrol edin

  1. 1

    Teknolojiyi ve başlangıç noktasını seçin

    Node.js veya Python için göreli betik yolunu girin. Go için paket yolunu, Rust için Cargo ikili dosyasının adını girin. PHP-FPM kendi sabit başlangıç komutunu kullanır.

  2. 2

    Çalışma dizinini ve dahili portu belirleyin

    /app veya /srv/app gibi desteklenen bir uygulama yolu seçin. EXPOSE portu belgeler; uygulamanın yine de bu portu dinlemesi gerekir. PHP-FPM dahili FastCGI portu 9000 ile çalışır.

  3. 3

    İki dosyayı da inceleyin

    Dockerfile ve .dockerignore dosyalarını birlikte okuyun. Bildirim dosyalarının adlarını, başlangıç hedefini, çalışma zamanı izinlerini ve projenizin gerektirdiği yerel sistem bağımlılıklarını kontrol edin.

  4. 4

    Kopyalayın veya indirin

    ZIP dosyasını indirip içindeki iki dosyayı derleme bağlamının köküne çıkarın veya dosyaları tek tek kopyalayıp Dockerfile ve .dockerignore adlarıyla kaydedin. Ardından konteyneri gerçek uygulamanızla derleyip test edin.

Projenizde gerçekten bulunan başlangıç noktasını seçin

Oluşturucu deponuzu inceleyemez. Girdiğiniz teknolojiyi, başlangıç noktasını, çalışma dizinini ve portu kullanır. Node.js uygulaması bir JavaScript başlangıç dosyası ve npm kilit dosyası; Python uygulaması bir betik ve requirements.txt gerektirir. Go için go.mod modülü ve paket yolu, Rust için Cargo projesi ve adı belirtilmiş bir ikili hedef gerekir. PHP-FPM farklıdır: HTTP sunucusu değil, bir FastCGI işlemi başlatır. Önüne, özel bir konteyner ağında Nginx gibi FastCGI destekleyen bir web sunucusu koyun. PHP imajı dahili olarak 9000 portunu dinler. Bu FastCGI portunu internete açmayın.

Teknoloji Belirttiğiniz başlangıç noktası Kontrol edilecek proje dosyaları
Node.js server.js gibi göreli JavaScript yolu package.json, package-lock.json, başlangıç dosyası
Python app.py gibi göreli Python yolu requirements.txt, başlangıç dosyası
PHP-FPM Sabit php-fpm işlemi PHP kaynak kodu ve ayrı bir FastCGI web sunucusu
Go . veya ./cmd/server gibi paket yolu go.mod ve paketin kaynak kodu
Rust Cargo ikili hedefinin adı Cargo.toml, Cargo.lock ve adı belirtilen ikili hedef

Oluşturulan dosyalar ne yapar?

WORKDIR, imaj içindeki işlem dizinini belirler. Form, /app, /srv/app, /opt/app, /workspace, /usr/src/app veya /var/www altındaki uygulama yollarını kabul eder; /root gibi sistem yollarını ve başka bir Dockerfile komutuna dönüşebilecek karakterleri reddeder. EXPOSE, konteyner portunu belgeler; ana makinenin güvenlik duvarını açmaz ve uygulamanın dinlemeye başlamasını sağlamaz. Oluşturulan .dockerignore, tipik yerel bağımlılık dizinlerini, sürüm kontrol verilerini ve hem kökteki hem de alt dizinlerdeki .env dosyalarını derleme bağlamı dışında tutar. Derlemeden önce dosyayı okuyun: projenizin kullandığı bir dosya yok sayma kuralıyla eşleşiyorsa kuralı uyarlayın. Gizli bilgileri asla kaynak koda, ARG veya ENV içine gömmeyin.

Derlenen Go ve Rust projeleri, derleyici araçlarının son imaja kopyalanmaması için ayrı derleme ve çalışma aşamaları kullanır. Node.js ve Python seçenekleri bildirilen bağımlılıkları kurar; PHP-FPM seçeneği FastCGI hizmetini başlatır. Bir konteyner tarifi, gerçek bir projenin derleneceğini, başlayacağını, sağlık kontrolünden geçeceğini, beklenen yolu sunacağını veya güvenle dağıtılabileceğini garanti edemez. Frameworkler, yerel uzantılar, varlık derlemeleri ve dosya izinleri ek adımlar gerektirebilir. Docker’ın derleme için en iyi uygulamaları ve derleme bağlamı kılavuzu katman sırasını ve yok sayma dosyalarının davranışını açıklar.

Uygulamanızla doğrulayın

ZIP dosyasını derleme bağlamının köküne çıkarın; içindeki dosyaların adları tam olarak Dockerfile ve .dockerignore olarak kalmalıdır. Alternatif olarak her dosyayı ayrı ayrı kopyalayıp bu adlarla kaydedin. Docker sürümünüz destekliyorsa docker build --check ., ardından docker build -t my-app . çalıştırın. İmajı bir test ortamında başlatıp gerçek başlangıç komutunu ve uygulamanın yanıt verdiği yolu doğrulayın. HTTP teknolojileri için yalnızca amaçlanan konteyner portunu eşleyin ve yanıtı kontrol edin. PHP-FPM için 9000 portunu yayımlamak yerine özel bir FastCGI ağ bağlantısı kullanın. Üretim sürümünden önce temel imajın güncel yamalarını ve bağımlılık kilit dosyalarını gözden geçirin.

Sık Sorulan Sorular

Hayır. Seçtiğiniz teknoloji ve başlangıç noktası için geleneksel bir başlangıç dosyasıdır. Gerçek bağımlılık dosyalarınızı, yerel paketleri, varlık derlemesini, izinleri, başlangıç davranışını ve güvenlik gereksinimlerini kontrol edin. Dağıtımdan önce imajı projenizle derleyip çalıştırın.

Hayır. EXPOSE konteyner portunu belgeler. Uygulamanız bu portu dinlemelidir; ana makineye yapılacak eşlemeyi ayrı bir çalışma zamanı yapılandırması belirler. PHP-FPM, HTTP yerine FastCGI kullanır. 9000 portunu, FastCGI destekleyen bir web sunucusunun arkasındaki özel konteyner ağında tutun.

Yok sayma dosyası, yaygın yerel bağımlılıkları, Git verilerini ve ortam dosyalarını Docker derleme bağlamının dışında tutar. ZIP içinde dosya adının başındaki nokta korunur. İki dosyayı derleme bağlamının köküne çıkarın ve gerekli derleme dosyalarının dışlanmaması için her kuralı projenize göre inceleyin.

Hayır. Seçilen teknoloji, başlangıç noktası, çalışma dizini ve port sonuç sayfasının URL’sinde taşınır ve dosyalar oluşturulurken bu siteye ulaşır. Gizli bilgiler veya özel depo yolları girmeyin. Araç kaynak kodunuzu yüklemez ve deponuzu incelemez.

İlgili Araçlar

Araç diğer dillerde mevcuttur