İçeriğe atla
%100 yerel

Dockerfile Oluşturucu

Dilin için hazır Dockerfile oluştur, multi-stage build ve akıllı varsayılanlarla.

Çıkış

Dockerfile Oluşturucu

Bir dil seç ve bu araç Dockerfile'ı birleştirir — temel imajı, bağımlılıkları kurulumunu ve uygulamayı başlatan komutu — boş bir dosyadan başlamak veya eski bir projeden kopyalamak yerine. Node.js, Python, Go, PHP, Java ve statik siteler (nginx ile hizmet verilen) hepsi desteklenir ve her biri bu stack'in beklediği temel imaj ve katman sırası ile gelir.

Seçenekler projeler arasında değişen şeyleri kapsar. Paket yöneticisini seç — Node için npm, Yarn veya pnpm; Python için pip veya Poetry — böylece kurulum katmanı kaynak kodunun geri kalanı gelmeden önce doğru manifest ve lockfile'ı kopyalar, Docker build cache'inin her kod değişikliğinde bağımlılıkları yeniden kurmasını engeller. Multi-stage build'i açarak bir imajda kur veya derle ve derlenmiş çıktıyı yalnızca temiz bir minimal çalışma imajına kopyala, derleyici veya geliştirme bağımlılıkları taşımadan. Root olmayan kullanıcı, HEALTHCHECK, açık port, başlangıç komutu ve ortam değişkenleri hepsi panelden ayarlanır ve .dockerignore, .git ve node_modules'i build bağlamından uzak tutar.

Her katman, ne yaptığını ve neden yaptığını açıklayan kısa bir yorum alır — commitleri önce kontrol etmek için bir yol ve kalp hızını öğrendikten sonra kolayca kapatılabilir. Çıktı, herhangi bir seçeneği değiştirdikçe güncellenir, böylece tek katmanlı build ile multi-stage build'i karşılaştırmak el ile yeniden oluşturmayı gerektirmez.

Buraya yazdığın hiçbir şey tarayıcını terk etmez — Dockerfile tamamen istemci tarafındaki JavaScript'te birleştirilir. Sonucu kopyala, yerel olarak yeniden adlandırmak için .txt dosyası olarak indir veya başka bir aracın girdisine gönder ve üzerinde çalışmaya devam et.

FAQ

Oluşturulan Dockerfile gerçekten derlenebilir mi?
Her dil için standart düzeni izler — temel imaj, bağımlılık kurulumu, kaynak kopyası, başlangıç komutu — ancak yine de projenin olağan dosyaları olmasını bekler (package.json, requirements.txt, go.mod, composer.json veya pom.xml). Dağıtmadan önce projenize karşı yolları ve komutları kontrol edin.
Multi-stage seçeneği ne değiştirir?
Açık olduğunda, ilk "build" aşamasında bağımlılıkları yükle (Go ve Java için derle) ve ikinci aşamada yalnızca tamamlanmış uygulamayı yeni, minimal bir imaja kopyala — build araçlarını saklayan bir imajdan çok daha küçük ve çok daha küçük bir saldırı yüzeyi.
Neden root olmayan kullanıcı olarak çalıştırmalıyız?
Tehlikeye atılan bir konteynerin içinde root olarak çalışan bir işlem, hosty etkilemek için daha fazla yeteneğe sahiptir. Root olmayan seçeneği, dedike bir kullanıcı ekler (veya imajın "node" gibi yerleşik olanını yeniden kullanır) ve konteynir uygulamanızı başlatmadan önce ona geçer.
Ortam değişkenleri alanına ne yazılmalıdır?
Virgülle veya satır sonu ile ayrılmış ANAHTAR=değer çiftlerinin listesi, örneğin NODE_ENV=production, PORT=3000. Her biri kendi ENV talimatı olur. Bu bölümü tamamen atlamak için boş bırakın.
Proje bilgilerim herhangi bir yere yükleniyor mu?
Hayır. Dockerfile tamamen tarayıcınızda seçtiğiniz seçeneklerden birleştirilir — projeniz hakkında hiçbir şey bir sunucuya gönderilmez.