Sayfalar

12 Mayıs 2017 Cuma

Docker Node.js Kurulumu

Arkadaşlar hepinize merhaba, sizlere dilimin döndüğünce docker kullanarak Node.js kurmasını ve bu sisteme nasıl erişebiliriz onu göstereceğim.
Öncelikle Docker nedir, ne değildir diyen arkadaşları şöyle alalım.
Linkten detaylı bilgiye ulaşabilirsiniz.

Öncelikle ben neden docker kullanıyorum ondan bahsedeyim.
Bilgisayarıma sürekli projelerimde kullanmam gereken veritabanı sistemlerini (Mysql, Postgres, MongoDb) bilgisayarıma kurmak istemiyorum çünkü belli bir süre sonra bu uygulamalar birikip bilgisayarı yavaşlatıyor.
Bunların yanında sterilize ortam oluşturması yani uygulamam yanlış kodlamadan dolayı RAM miktarının tamamını sömürüp beni kitleyemiyor çünkü docker ile buna sınır koyabiliyorum.

Peki neden docker ? Vagrant değil ? benim linux işletim sistemi kullanıyorum dockerda linux tabanlı bir sistem (LXC) daha stabil çalışıyor, vagrant kurup işletim sistemi replace etmeme gerek kalmıyor.

Peki neden Docker ve Node.js ? Hemen onuda açıklıyorum.
Node.js ve Docker ile alakalı birçok döküman var fakat bide benim olsun istedim, bende bir nefes bir soluk katayım dedim.

İlerleyen zamanlarda Docker kullanarak Php, Mysql, Apache kurarak kendimize test ortamı nasıl kurulur onu anlatmayı planlıyorum bu sayede lab ortamında gerçek bir sunucuya root olabilmek için uğraşır izinleri geçmek için çabalayabiliriz vs vs..

Şimdi şöyle olmalı böyle olmalı falan diye konuyu baymak istemiyorum verdiğim linkte ve forumdaki aramalarda gerekli açıklamaları görebilirsiniz.

-) Node.js projemizde nodemon modülünü kullanıcaz, node.js dosyalarımızda yaptıgımız herhangi bir değişikliği anlayıp otomatik sunucumuzu baştan başlatacak.

-) Dosyalarımızı docker içerisine atmıcaz, kendi bilgisayarımızda barındırıcaz ki sürekli değişiklik yapabilelim bunuda Volume kullanarak halledicez.

-) docker-compose dosyamızı kullanarak imajımıza ne kadar ram kullanması gerektiğini söyleyeceğiz gibi gibi gibi şeyler öğrenme fırsatınız olabilir.


Öncelikle hemen Dockerfile dosyamıza göz atalım nasıl hazırlamalıyız içindekiler ne işe yarar.

FROM node bize node.js paketini yükleyeceğimizi bildiriyor.


Daha sonra docker-compose adında bir dosya oluşturuyoruz ve içeriğini aşağıdaki gibi yapıyoruz.

Şimdi yukarda version diye birşey var bu docker-compose versiyonu, versiyondan versiyona aşağısında bulunan komutlar değişiklik gösterebiliyor.

Hemen altında services, buda bunun bir servis olduğunu ve servis isminin web olduğunu belirtiyor. web yerine istediğinizi yazabilirsiniz siz.

build: . komutu ise bize diyorki - Kardeşim docker-compose dosyasının yanında Dockerfile var git orada tüm komutlar oradan sistemi build et.

volumes: ise -Benim kendi ./app diye bir dizinim var bu gerçek makinada, sen bunu al kendi /home dizininde göster kendi dosyanmış gibide kullan.

Yani biz gitcez app klasöründe değişiklik yapcaz onlar docker içerisinde /home klasöründe değişiklik olmuş gibi olacak.

ports: ise Benim bilgisayarımdaki 8080 portundan gelen tüm istekleri dockerda 8080 portuna yönlendir.

mem_limit: Tahmin edeceğiniz üzere bu docker en fazla 512 MB ram tüketsin diyoruz ve hemen ardından konsolu acıyoruz docker-compose dosyamızın yanına geliyoruz ve
docker-compose up komutunu veriyoruz.

Bu komut gidiyor bizi Dockerfile içerisinde indirilmesi yüklenilmesi gereken herşeyi yapıyor ve bize sistemi çalıştırıp veriyor.


Artık size localhost:8080 portundan projenize erişmek kalıyor.