Menjalankan Aplikasi NodeJS Menggunakan Docker

Adiatma Kamarudin
tutorjs
Published in
3 min readSep 15, 2017
https://raw.githubusercontent.com/mjhea0/node-docker-workflow/master/_presentation/images/logo.png

Apa itu Docker?

Docker adalah aplikasi open source yang berfungsi sebagai container.

Lalu Container?

Container berjalan di atas sebuah mesin sistem operasi yang bertujuan untuk mempaketkan komponen, library atau aplikasi yang dibutuhkan untuk menjalankan aplikasi nodejs ke dalam format image, dan image inilah yang di sebut sebagai container oleh docker.

Tujuannya adalah sederhana agar seluruh hal yang kita butuhkan untuk menjalankan aplikasi akan di paketkan oleh docker kedalam format image. Sehingga kita tidak perlu lagi untuk menginstal satu persatu.

Nah Developer menggunakan docker untuk mengatasi permasalahan soal perbedaan versi pada tools atau library yang tidak kompetibel pada sistem operasi tertentu. Tentunya hal ini akan sangat memudahkan dalam mengatur dan mengorganisir project di dalam sebuah tim.

Okey langsung saja kita praktekan, bagaimana caranya menjalankan aplikasi nodejs dengan docker. Jangan lupa untuk menginstall terlebih dahulu dockernya.

Membuat Aplikasi NodeJS

Langkah pertama buat folder dengan namastart-nodejs-with-docker atau jika ingin menamakan dengan nama yang berbeda silahkan saja. kemudian ke direktori aplikasi yang baru saja kita buat lalu buat file dengan nama package.json lalu isikan dengan file di bawah ini.

kemudian buat file index.js, di bawah ini adalah contoh aplikasi nodejs sederhana dengan respon yang akan mengembalikan hello world sebagai keluarannya.

Langkah selanjutnya akan membuat file dengan nama Dockerfile, Nah sebelum mengeksekusi Dockerfile ada baiknya kita mengenal fungsi dan kegunaannya.

Dockerfile adalah text document yang berisi kumpulan perintah yang di tunjukan untuk membangun image. Nah perintah tersebut biasanya berisi komponen — komponen yang kita butuhkan. nantinya dengan menjalankan perintah docker build secara otomatis docker akan menginstall seluruh komponen yang di butuhkan sesuai dengan instruksi yang tercatat di textDockerfile.

Okey, berikut lebih lanjut tentang beberapa baris instruksi dasar yang tersedia di Dockerfile :

FROM <image> [as <name>]

FROM adalah instruksi tahap awal ketika menginisialisasi project baru dengan docker. Perintah ini akan mensetup base image untuk instruksi — instruksi yang selanjutnya.

Biasanya Dockerfile akan valid jika tersedia instruksi FORM di dalamnya. Untuk aplikasi nodejs misalnya kita membutuhkan aplikasi nodejs versi 6.11.2-alpine maka pada baris FORM kita menuliskannya seperti ini. FORM node:6.11.2-alpine

WORKDIR /path/to/workdir

WORDIR adalah instruksi untuk mendefinisikan direktori kerja atau area kerja yang nantinya seluruh instruksi yang ada di Dockerfileakan di jalankan di area kerja yang kita setup di WORKDIR.

COPY <src> <dest>

COPY adalah instruksi untuk meng copy file baru atau direktori dari <src> dan menambahkannya ke filesystem container path <dest> .

RUN <command>

RUN adalah instruksi untuk mengekesekusi perintah, misalnya seperti perintah install nodejs dan lain sebagainya.

EXPOSE <port> [<port> ...]

EXPOSE adalah perintah untuk me listen nework port .

CMD ["executable","param","param"]

CMD adalah instruksi untuk mengeksekusi container. Untuk mempelajari lebih lanjut silakan mengunjungi website resminya disini

Okey, Untuk kasus saat ini buka file documentDockerfile lalu buat baris instruksi seperti dibawah ini.

Okey, kita dapat menggunakan file .dockerignore untuk mengecualikan beberapa file yang tidak ingin kita eksekusi ketika menjalankan docker.

Untuk kasus saat ini, kita menyimpan dua file pada .dockerignore yaitu node_modules dan yarn.lock .

Oke, sekarang kita akan membuat container image, untuk itu langsung saja ke direktori aplikasi dimana kita menyimpan Dockerfile, lalu perlu untuk jalankan perintah di bawah ini.

docker build -t <your username>/start-nodejs-with-docker .

perintah docker build akan mendownload nodejs dan berbagai keperluan lainnya yang kemudian akan di jadikan container image . tunggu hingga selesai download. Lalu jalankan perintah docker images untuk melihat container yang telah tersedia.

Selanjutnya untuk menjalankan aplikasi nodejs kita cukup dengan menjalankan perintah docker run -p 8080:8080 <your username>/start-nodejs-with-docker .

Okey, sampai sejauh ini kita telah berhasil membuat aplikasi nodejs berjalan dengan docker.

--

--