1. Ana Sayfa
  2. Yazılım
  3. Node.js Web App Nasıl Dockerize Edilir?

Node.js Web App Nasıl Dockerize Edilir?

051021_0034_NodejsWebAp1.jpg

Bu makalemde Node.js ile geliştirmiş olduğumuz ’i Docker Container’ına yerleştireceğimizden yani Nasıl Dockerize edeceğimizden bahsedeceğim. Uygulamaya başlamadan önce bilgisayarınızda Docker’ı yüklemiş olmanız gerekmektedir.

Bu uygulama örneği hazırlanırken VS Code editörü üzerinden çalışıldığı için bütün görseller ve kodlar buna paralel olarak gösterilmektedir.

İlk olarak basit bir Web App oluşturalım. Terminalimizde “npm init” komutunu kullanarak “package.json”u oluşturuyoruz ve “npm install express” komutunu kullanarak “Express.js” Framework’ünü yüklüyoruz.

Resim-1

Sonrasında “index.js” dosyası oluşturup demo bir uygulama hazırlayalım.


Resim-2

Şimdi sırada Node Image‘ımıza kaynak kodlarımızı kopyalamak ve “dependencies“i yüklemek var. Öncelikle “Dockerfile”ımızı oluşturuyoruz.

Resim-3

Resim-3’de bulunan Dockerfile komutları hakkında Sayın Gökçe Demir‘in “Dockerfile Komutları Nelerdir, Nasıl Hazırlanır?” adlı makalesine göz atarak bilgi sahibi olabilirsiniz.

Burada yaptığımız işlemler sırasıyla şunlardır. İlk olarak “Working Directory”mizi belirliyoruz. Sonrasında “dependencies“imizin bulunduğu “package.json”ı Image’ımızın içine kopyalıyoruz ve gerekli dosyaları yüklemesi için “npm install” komutunu çalıştırıyoruz. Docker, Image oluştururken verimliliği artırmak adına “layer cache” konseptini kullanır. Bu mantıktan yola çıkarak önce “package.json”u sonrasında geri kalan kaynak kodunu Image’ımıza kopyalıyoruz ve Container çalıştığında hangi portu dinlemesi gerektiğini belirtiyoruz. Bu örnekte 3000 portunu dinliyor.

Dockerfile verimliliğiyle alakalı daha detaylı bilgiye ulaşmak için Sayın Berfin Yavuzaslan‘ın “Dockerfile Verimliliği Nasıl Artırılır?” adlı makalesine göz atabilirsiniz. Son olarak da Container’ı başlattığımızda hangi komutu çalıştıracağımızı “CMD [“node”, “index.js”]” şeklinde belirtiyoruz.

Artık Image’ımızı oluşturabiliriz. Şu an çalıştıracağımız Dockerfile’ın bulunduğu klasörde olduğumuz için konumunu belirtirken “.” kullanıyoruz. Terminale “docker build –t node-app .” komutunu yazıyoruz ve Image’ımızın oluşmasını bekliyoruz. Bu kısım biraz zaman alabilir. (Daha öncesinde yazımı hazırlarken kurduğum için CACHED olarak gözüküyor ilk defa oluşturuyorsanız bu şekilde gözükmez.) (Resim-4)

Resim-4

Son olarak Container’ımızı başlatacağız bunun için “docker run -p 3000:3000 -d –name web-app node-app” komutunu kullanacağız. Burada “3000:3000” ifadesi ile ’daki 3000 Port’una gelen trafiği Container’daki 3000 portuna yönlendirmesini sağlıyoruz.

Resim-5

Resim-6

Bu adımları uygulayarak Node.js ile geliştirdiğiniz Web App’leri Docker Container’ına yerleştirebilirsiniz.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org/ linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar:

https://www.mshowto.org/

https://docs.docker.com/engine/reference/run/

https://hub.docker.com/_/node

https://www.mshowto.org/dockerfile-komutlari-nelerdir-nasil-hazirlanir.html

https://www.mshowto.org/dockerfile-verimliligi-nasil-artirilir.html

https://expressjs.com/en/guide/routing.html

TAGs: Node.js, Express.js, Framework, VS Code, Linux, Dosya İşlemleri, Docker, DockerHub, Web, Web Geliştirme, Javascript, Docker Container, Node, Node Image

Yorum Yap

Yazar Hakkında

1999 Yılında İstanbul'da dünyaya geldi.Eğitimini Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliğibölümünde devam ettiriyor. Cloud computing , data science, webgeliştirme ve blockchain ile ilgileniyor.

Yorum Yap