Nodejs Docker

Node.js Server ve Docker

Bu yazıda Express.js framework ile oluşturulmuş çok basit bir Node.js uygulamasının docker ile nasıl kullanıldığını göstermeye çalışacağım.

Docker image oluşturmak

Örneğimde kullanmak için node paketinin 10-alpine versiyonunu tercih ettim. Bu versiyon içinde Node.js 10 versiyonu mevcut.

Dockerfile içeriğimiz şu şekilde.

Satır açıklamalarına gelince:

  1. FROM node:10-alpine: node:10-alpine temel alınıyor.
  2. RUN mkdir -p /src/app: Oluşturulan image içinde /src/app konumunda bir klasör oluşturuluyor.
  3. WORKDIR /src/app: Komutlar çalıştırılırken baz alınacak konumu belirtiyoruz.
  4. COPY . /src/app/: Tüm çalışma klasöründeki dosyalar imaj içindeki konumuna kopyalanıyor.
  5. RUN npm install: Projemizin bağımlılıklarını yükletiyoruz.
  6. EXPOSE 3000: Uygulamamız 3000 portundan çalışacak. Bu portu dinlemesi gerektiğini Docker’a bildiriyoruz.
  7. CMD [ "npm", "start" ]: Image içindeki proje klasörümüzde npm start komutumuzu çalıştırıyoruz.

Image oluşturmak için aşağıdaki komutu çalıştırıyoruz. Bu komut proje klasörümüzdeki Dockerfile dosyasını kullanarak minimal-node isminde bir image oluşturacak.

docker images -a | grep 'minimal-node komutu ile mevcut image listesi içinde istediğimiz image olup olmadığını kontrol edebilirsiniz.

Docker Container oluşturmak ve çalıştırmak

Aşağıdaki komut daha önce oluşturduğumuz minimal-node imaj kullanılarak minimal-node-container isminde bir container oluşturacak. Oluşturduğumuz imaj 3000 portundan yayın yapacak şekilde ayarlanmış. Biz ise container oluşturulurken docker üzerindeki makinemizden 8812 portu gibi başka çalışmamalarımızla karışmayacak bir port üzerinden imaj içine bağlanmak istiyoruz. Bunun için --publish parametresi kullandık. Bu parametreyi hemen hemen tüm örneklerde -p şeklinde kısaltılmış olarak görebilirsiniz.

Tarayıcınızdan http://localhost:8812/ şeklinde bir istek yaptınızda terminalizden bu isteğin listelendiğini görebilirsiniz. Web tarayıcınızda çalıştırdığınızda aşağıdaki çıktıyı alabilmelisiniz.

Özet

Bu makalede popüler bir node.js framework olan express.js kullanarak oluşturulmuş çok basit bir uygulamanın docker kullanılarak nasıl sunulacağını anlatmaya çalıştım.

Makalede anlatılanları uyguladıysanız oluşturduğunuz image ve container kaldırılması için aşağıdaki komutu çalıştırın.

Örnek proje klasörüne https://github.com/mahmutbayri/docker-examples/tree/master/minimal-node adresinden olaşabilirsiniz.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir