Dockerize Nest JS Application
Agik Setiawan
Full Stack Developer
April 4th 2023
Dengan menjadikan sebuah Docker Container akan memudahkan kita dalam proses deployment dan menjalankan aplikasi secara praktis di dalam cloud, vps bahkan kubernetes.
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
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
Artikel Terkait
© 2023 PT Koding Digital Indonesia. All rights reserved