Agik Setiawan - January 16, 2023

Dockerize Nest JS Application

Dengan menjadikan sebuah Docker Container akan memudahkan kita dalam proses deployment dan menjalankan aplikasi secara praktis di dalam cloud, vps bahkan kubernetes.

 

Apa itu Docker Container?

Docker Container adalah Instance dari Image Docker yang berisi kumpulan tools yang digunakan untuk menjalankan aplikasi sesuai dengan kebutuhan pengguna. untuk lebih jelas silahkan baca Berkenalan dengan Docker .


Contoh sederhana saya memiliki aplikasi Nest JS yang di dalamnya ada beberapa tools yang digunakan misalnya Node JS, NPM, Yarn dan lain - lain. dengan Container kita akan membungkus semua dependensi yang berkaitan dengan aplikasi ke dalam container. setelah aplikasi menjadi container, maka kita akan dengan mudah menjalankan aplikasi kita dimana saja dan kapan saja. misal di Cloud ataupun VPS.


Setalah membuat proyek Nest JS, di dalam root Project buatlah file “Dockerfile” dan isi seperti di bawah ini:

FROM node:18-slim  as builder

WORKDIR /usr/src/app


COPY package*.json ./

RUN yarn install

COPY . .

# RUN yarn --omit=dev

RUN yarn build

# RUN ls -a


FROM node:18-slim as production

# RUN sh ./rm.sh

ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

COPY --from=builder /usr/src/app/dist ./dist
COPY --from=builder /usr/src/app/node_modules ./node_modules

CMD ["node", "dist/main.js"]


Kemudian jalankan perintah

docker build -t nest-dockerize .

Tunggu sampai proses build container selesai

 

Jalankan Container


Untuk menjalankan container yang sudah kita buat, kita bisa menjalankan secara langsung menggunakan Docker ataupun menggunakan Docker Compose.


Untuk menjalankan secara langsung menggunakan Docker kita hanya perlu menjalankan perintah

docker run -p 3000:3000 nest-dockerize


Jalankan menggunakan Docker compose

version: "3.8"

services:
  app:
    image: nest-dockerize
    ports:
      - 3000:3000

 

Repository


https://github.com/mister-coding/nestjs-docker

Share


Comments