Basit Bir AdonisJs Uygulamasını Dockerize Etmek

Selamlar. Bu yazının konusu Basit Bir AdonisJs Uygulamasını Dockerize Etmek olacak. Bir önceki teknik yazı Vue hakkındaydı. Bu yazıda Laravel benzeri bir NodeJS framework’ü olan AdonisJS’i nasıl docker-compose yardımıyla hızlıca yayına alacağımızı anlatacağım. Yapacağımız işlemi ben Ubuntu üzerinden anlatıyorum. Sadece kullandığınız işletim sistemi ve o sistemin dağıtımlarına bağlı farklılıklar olabilir. Bunları da araştırmanız gerekiyor.

Basit Bir AdonisJs Uygulamasını Dockerize Etmek

Basit Bir AdonisJs Uygulamasını Dockerize Etmek

Başlamadan bu yazı adonisjs hakkında bilgiler sunmayacak. Sadece docker-compose ile yayına almayı anlatacağım. İsterseniz hemen başlayalım.

Ubuntu’ya Docker Kurulumu

Docker, 64 bit Ubuntu gerektiriyor. Yani sunucunuza ya da kişisel bilgisayarınıza kurmak niyetiniz var ise 64 bit sistem olduğundan emin olmalısınız. Hadi başlayalım;

1-) Resmi Docker repository’si için GPG Key’ini sisteme ekleyelim

2-) Docker depolarını APT kaynaklarına ekleyelim

Yukarıdaki komut’ta lsb_release ile kullandığımız sistemin adını alıyoruz.

3-) Yeni eklenen depolar için sistemi güncelleyelim

4-) Docker repolarının alındığından emin olmak için cache üzerinden kontrol sağlayalım

Bu komut sonrasında şöyle bir çıktı göreceğiz:

Depoları başarıyla aldığımızı bu çıktıdan anlayabiliriz.

5-) Docker Kurulumu

Depolar başarıyla alındığına göre Docker’ı kurabiliriz

Son olarak da docker’ın başarılı bir şekilde çalışıp çalışmadığını kontrol edelim

6-) Docker’ın Kontrolü

Çıktı aşağıdaki gibi olmalıdır

Bu arada belirtmem gerekiyor, docker daima super admin yetkisi istiyor yani sudo kullanacaksınız. Eğer istemiyorsanız aşağıdaki komutları verebilirsiniz:

Bu işlemle birlikte docker kurulumunu bitirdik. Şimdi de docker-compose kurulumunu yapacağız. Bu sayede yayına alma işlemlerini bir tık daha basit hale getireceğiz.

Docker Compose Kurulumu

Kurulum ubuntu üzerinden aşağıdaki komutla yapılabiliyor.

Diğer işletim sistemlerine dair kurulum bilgisine buradan ulaşabilirsiniz. Docker tarafında şu anlık işlemlerimizi bitirdik. Şimdi hadi gidip adonisjs kurulumunu yapalım

AdonisJs Kurulumu

Aşağıdaki komutla global olarak adonis cli kuracağız.

Kurulumdan sonra komut satırına adonis –help komutunu vererek çıktıyı görebiliriz. Hadi bir proje oluşturalım;

Yeni Adonis Projesi Oluşturmak

Ben projenin adına dockerize vereceğim. Siz mahmut diyebilirsiniz.

Sonda bulunan nokta, bulunduğum klasörde bu projeyi oluştur anlamına geliyor. Şu anda dockerize isimli bir klasördeyim. Proje oluşturulduktan sonra start klasörünün altındaki routes.js dosyasını açalım ve bir adet endpoint ekleyelim.

Sistemi docker ile yayına almadan önce test edelim;

Bu komut development sunucusu ile projeyi ayağa kaldırır. Yazının başındaki görseli görüyorsanız eğer sistem başarıyla çalışıyordur. Projeyi durdurup son bir ayar yapalım. Proje dizininde yer alan .env dosyasını açıp host ve port ayarlarını şöyle değiştirelim;

Artık uygulama 3333 portunu değil de 8080 portunu kullanacak. Şimdi bir adet docker file oluşturacağız. Burada kodları direkt vereceğim.

Dockerfile

Dockerfile dosyası aşağıdaki gibi olacak.

NodeJS 8 ya da latest diyebilirdik. Ben 8 dedim. Ardından çalışma dizinini belirttim. Daha sonra da package.json dosyasını bu dizine atıp, bağımlılıkları yani adonis bağımlılıklarını kuracağız. En son 8080 portunu kullanacağımızı belirtip, npm start komutlarını çalıştıracağız. Hepsi bu kadar. Buraya kadar olan bu mini açıklama yukarıdaki dosyanın ne yaptığı ile ilgiliydi.

Bu aşamadan sonra docker compose kullanacağız. Bunun için proje dizinine bir adet docker-compose.yml adında dosya oluşturacağız.

Şimdi projeyi yayına almak için sırasıyla şu komutları verelim:

Projeyi build ediyor. Bu aşamada henüz proje deploy edilmiş değil. Ardından aşağıdaki komutla projeyi detached mod’da up ediyoruz. Burada -d flag’i arkaplanda işlemleri çalıştırır ve sonra da sonlandırır. Eğer kullanmadan yaparsanız proje sanki dev serverda çalışıyormuş gibi olur sizden CTRL+C bekler. Yani tamamen bir çalışma gerçekleşmiyor burada. Son

Şimdi de projeyi start edelim ve tamamen çalışır duruma gelmiş olsun

Evet hepsi bu kadar. Projemiz şu anda 8080 portunda yayında. Eğer proje kodlarınızda değişiklik yaparsanız, docker-compose ile stop demelisiniz ve yukarıdai diğer 3 adımı tekrarlamalısınız.

Yok, ben çok üşengeç bir insanım diyorsanız, projeniz aşırı basit ise aşağıdaki mini bash scripti işinizi görecektir;

Evet bu yazıda Basit Bir AdonisJs Uygulamasını Dockerize Etmek hakkında bilgi aldık. Umarım yararlı olmuştur. Aslında bu yazıya Basit Bir AdonisJs Uygulamasını Dockerize Etmek olarak bakmak yerine herhangi bir NodeJS uygulamasını dockerize etmek olarak da bakabilirsiniz.

Okuduğunuz için teşekkürler. İyi çalışmalar dilerim.