Node.js Uygulamasını Dockerleştirme

Node Js Uygulamasini Dockerlestirme



Bir uygulamayı Docker'a dönüştürmek, uygulamayı yürütmek için gereken tüm önkoşulların belirtilmesini ve ardından çeşitli makinelerle paylaşılabilecek özel bir Docker görüntüsü oluşturmak için Dockerfile'ın kullanılmasını içerir. Bir “Dockerizasyon” Node.js ” uygulaması tutarlılığı artırır ve geliştirici tarafında uygun hata ayıklama sağlar.

Önkoşullar







Bir “yerleştirmenin önkoşulları” Node.js ” uygulaması şunları içerir:



  • Docker Kurulumu.
  • Node.js Uygulamasının Temel Anlayışı.

Node.js Uygulaması Nasıl Dockerleştirilir?

A ' Node.js ” uygulaması aşağıdaki adımlarla dockerize edilebilir:



Adım 1: Bir “package.json” Dosyası oluşturun





Öncelikle tüm dosyaların yer alacağı yeni bir dizin oluşturun. Bu dizinde “ paket.json ” Uygulamayı bağımlılıklarıyla birlikte temsil eden dosya:

{
'isim' : 'docker_web_app' ,
'versiyon' : '1.0.0' ,
'Tanım' : 'Docker'da Node.js' ,
'yazar' : 'İlk son ' ,
'ana' : 'sunucu.js' ,
'Kodlar' : {
'başlangıç' : 'düğüm sunucusu.js'
} ,
'bağımlılıklar' : {
'ifade etmek' : '^4.18.2'
} }



Adım 2: Bir “package-lock.json” Dosyası oluşturun

“package.json” dosyasında “ npm kurulumu ” cmdlet'i. Bu bir “oluşturacaktır” package-lock.json Docker imajına kopyalanan dosya şu şekilde:

npm düzenlemek

3. Adım: Sunucu Oluşturun

Bundan sonra bir “ sunucu.js ' kullanan bir web uygulamasını bildiren dosya Express.js ' çerçeve:

'kesin kullanın' ;

const express = gerektirir ( 'ifade etmek' ) ;

sabit PORT = 8080 ;
sabit HOST = '0.0.0.0' ;

const uygulaması = ekspres ( ) ;
uygulama.get ( '/' , ( talep, res ) = > {
tekrar gönder ( 'Selam Dünya' ) ;
} ) ;

uygulama.dinle ( LİMAN, KONAK, ( ) = > {
konsol.log ( ' http'de çalışıyor: // ${HOST} : ${PORT} ' ) ;
} ) ;

Şimdi uygulamayı resmi bir Docker imajı aracılığıyla Docker konteyneri içerisinde yürütmenin metodolojilerine geçelim.

Adım 4: Docker dosyası oluşturun

Tüm dosyaları içeren aynı dizinde manuel olarak bir Docker dosyası oluşturun. Bu dosyaya aşağıdaki kod satırını yazın:

Düğümden: 18
İŞ YÖNÜ / usr / kaynak / uygulama
Paketi KOPYALA * .json . /
npm'yi çalıştır düzenlemek
KOPYALA . .
ORTAYA ÇIKARMAK 8080
CMD [ 'düğüm' , 'sunucu.js' ]

Yukarıdaki kod parçacığında aşağıda verilen adımları uygulayın:

  • İlk olarak, düğümün en son uzun vadeli destek sürümü 18'i, içinde yer alan temel görüntü olarak kullanın. Docker Merkezi .
  • Bundan sonra görüntüdeki uygulama kodunu içerecek bir dizin oluşturun.
  • Bu, uygulamanın çalışma dizinini temsil eder.
  • Şimdi uygulama bağımlılıklarını “ npm ”.
  • Not: Npm sürüm 4 veya daha eski bir sürüm kullanılıyorsa “package-lock.json” dosyası oluşturulmayacaktır.
  • Şimdi “ kopyalayın paket.json ' dosya. Ayrıca uygulamanın kaynak kodunu Docker görüntüsünde ' KOPYALA ' talimat.
  • ORTAYA ÇIKARMAK ”Uygulamanın 8080 numaralı bağlantı noktasına bağlanmasına izin verme talimatı.
  • Son olarak, uygulamayı çalışma zamanını tanımlayan CMD aracılığıyla yürütmek için cmdlet'i tanımlayın. Burada, “ düğüm sunucusu.js Sunucuyu başlatmak için cmdlet kullanılacaktır.

Adım 5: Bir “.dockerignore” Dosyası Oluşturun

“.dockerignore” dosyasında bir “.dockerignore” dosyası oluşturun. Docker dosyası ” aşağıda verilen içeriği içeren dizin/klasör:

node_modules
npm-debug.log

Bu içerik, sırasıyla yerel modüllerin ve hata ayıklama günlüklerinin Docker görüntüsüne kopyalanmasını önler.

Adım 6: Görüntüyü Oluşturun

Şimdi, Dockerfile'ı içeren dizinde, aşağıda belirtilen cmdlet'i kullanarak görüntüyü oluşturun:

liman işçisi yapısı. -T düğümler / düğüm-web-uygulaması

Bu cmdlet'te ' düğümler ” dizin adını ifade eder, dolayısıyla cmdlet'i buna göre belirtin ve “ -T ” flag görüntüyü etiketler.

Şimdi görüntüleri bu komutla listeleyin:

liman işçisi görselleri

Adım 7: Görüntüyü Çalıştırın

Aşağıda belirtilen cmdlet'i kullanarak görüntüyü yürütün/çalıştırın:

liman işçisi koşusu -P 49160 : 8080 -D düğümler / düğüm-web-uygulaması

Burada, “ -P ” bayrağı, genel bir bağlantı noktasını konteyner içindeki özel bir bağlantı noktasına yönlendirir ve “ -D ” flag, kabı bağımsız modda, yani arka planda çalıştırır.

Adım 8: Uygulamanın Çıktısını Oluşturun

Şimdi aşağıdaki komutları kullanarak uygulamanın çıktısını yazdırın:

liman işçisi not
Liman işçisi günlükleri 77b1e3c8576e

Konteyner kabuğu içinde gezinmeye ihtiyaç varsa, ' yönetici ” cmdlet'i:

liman işçisi yönetici -BT 77b1e3c8576e / çöp Kutusu / darbe

Burada, ' 77b1e3c8576e ” yürütülen “ ile kopyalanabilen konteynerin kimliğini temsil eder. liman işçisi ps ” komutunu daha önce vermiştik.

Adım 9: Uygulamayı Test Etme

Uygulamayı test etmek için Docker'ın eşlediği uygulamanın bağlantı noktasını alın:

liman işçisi not

Yukarıdaki cmdlet'te Docker ' 8080 “konteyner içindeki limandan limana” 49160 ' makinede.

Adım 10: Uygulamayı Çağırma

Uygulamayı “ aracılığıyla çağırın kıvırmak ” cmdlet'ini yukarıda eşlenen bağlantı noktasına başvurarak ve gerekli değerleri girerek:

kıvırmak -Ben yerel ana bilgisayar: 49160

Adım 11: Uygulamayı Kapatın/Sonlandırın

Son olarak uygulamayı “” aracılığıyla kapatın. öldürmek ” cmdlet'i:

liman işçisi öldürmek 77b1e3c8576e

Ayrıca uygulamanın bu komutla durdurulup durdurulmadığını giriş değerleriyle doğrulayın:

kıvırmak -Ben yerel ana bilgisayar: 49160

Çözüm

A ' Node.js ' uygulaması, bir sunucu, bir docker dosyası, '.dockerignore' dosyası oluşturularak, görüntünün oluşturulup çalıştırılmasıyla, uygulamanın çıktısının oluşturulmasıyla ve uygulamanın test edilmesi, kapatılması ve durdurulmasının onaylanmasıyla dockerize edilebilir. Bu makalede, bir Node.js uygulamasının dockerleştirilmesi konusu ayrıntılı olarak ele alınmıştır.