Node.js atau NodeJS adalah bahasa pemrograman, atau bisa dibilang aplikasi yang saat ini sedang populer. Banyak cara melakukan deploy NodeJS, salah satunya ke Docker Container. Pada artikel ini kami akan membahas mengenai Cara Deploy Aplikasi NodeJS ke Docker.

NodeJS

NodeJS adalah suatu aplikasi website yang berjalan dengan menggunakan bahasa JavaScript. Bisa dibilang sebagai javascript runtime.

Docker

Docker adalah Platform as a Service (PaaS) Open Source yang memungkinkan untuk virtualization di dalam satu server. Pengaturan software beserta file/hal pendukung lainnya akan menjadi sebuah Image (istilah yang diberikan oleh docker). Kemudian sebuah instan dari Image tersebut kemudian disebut Container.

Sebenarnya deploy aplikasi NodeJS ini sama saja, yang membedakannya saat di deploy ke Docker adalah aplikasi kamu berjalan di atas container docker yang ada.

Persyaratan 

Sebelum memulai proses instalasi cara deploy aplikasi NodeJS ke docker, kamu harus memastikan memiliki beberapa persyaratan di bawah ini.

  • Memiliki server dengan CentOS 7.
  • Memiliki akses sebagai root.

Cara Deploy Aplikasi NodeJS ke Docker

Step 1 – Install Docker

Kamu harus melakukan instalasi Docker terlebih dahulu, kamu dapat cek artikel berikut untuk referensi instalasinya: Cara Install Docker di CentOS 7 [link]

Step 2 – Install NodeJS

Jalankan command di bawah ini supaya dapat melakukan instalasi NodeJS melalui node source.

$ curl –silent –location https://rpm.nodesource.com/setup_4.x | bash –

$ yum install nodejs -y

Step 3 – Create Directory

 

$ mkdir nodejs

 

Buat direktori nodejs untuk menaruh file NodeJS dan lakukan inisasi npm.

 

name: (nodejs) 

version: (1.0.0) 

description: NodeJS Dewiweb

entry point: (index.js) app.js

test command: 

git repository: 

keywords: 

author: ninja

license: (ISC) MIT

About to write to /root/nodejs/package.json:

 

{

  “name”: “nodejs”,

  “version”: “1.0.0”,

  “description”: “NodeJS Dewiweb”,

  “main”: “app.js”,

  “scripts”: {

    “test”: “echo \”Error: no test specified\” && exit 1″

  },

  “author”: “ninja”,

  “license”: “MIT”

}

 

Is this ok? (yes) yes

 

Kemudian akan dibuat package.json, tambakan express and pasang pada project nodejs tersebut.

 

$ npm install express –save

Step 4 – Create app.js

Masih di dalam direktori nodejs, buat file app.js

 

$ nano app.js

 

var express = require(‘express’);

var app = express();

 

app.get(‘/’, function (req, res) {

  res.send(‘Hi, this is NodeJS Dewiweb!’);

});

 

app.listen(3000, function () {

  console.log(‘apps running under port 3000!’);

});

 

Kemudian coba jalankan app.js nya

 

$ node app.js

Step 5 – Create Dockerfile

Kamu perlu membuat image file yang di dalamnya nanti menggunakan aplikasi nodejs tersebut. Di sini kami menggunakan based image nodejs 11.4.0 yang menggunakan alpine.

 

$ nano Dockerfile 

 

FROM node:11.4.0-alpine

 

WORKDIR /app

COPY package.json /app

RUN npm install

COPY . /app

CMD [“node”, “app.js”]

EXPOSE 3000

 

Instruksi di atas menambah file app.js ke /app, melakukan copy package.json ke /app, menjalankan app.js and mengekspos port.

Step 6 – Docker Build

Setelah membuat script Dockerfile, jalankan build nya.

 

$ docker build -t appnodejs:1.0 .

 

Step 1/7 : FROM node:11.4.0-alpine

 —> f21b938fb1e6

Step 2/7 : WORKDIR /app

 —> Using cache

 —> 161443b8f90c

Step 3/7 : COPY package.json /app

 —> Using cache

 —> 476cfe7a3d98

Step 4/7 : RUN npm install

 —> Running in a589c4aea2df

Removing intermediate container a589c4aea2df

 —> 5eb3db83c113

Step 5/7 : COPY . /app

 —> 856c6b782f7b

Step 6/7 : CMD [“node”, “app.js”]

 —> Running in 4be107c3d6c6

Removing intermediate container 4be107c3d6c6

 —> 3e9412439c75

Step 7/7 : EXPOSE 3000

 —> Running in 3550a89a4d3d

Removing intermediate container 3550a89a4d3d

 —> 3034489aa327

Successfully built 3034489aa327

Successfully tagged appnodejs:1.0

 

Di atas ini menunjukan bahwa kamu telah membuat image docker bernama appnodejs.

 

Untuk melakukan pengecekan docker image dapat menggunakan command di bawah ini.

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

appnodejs           1.0                 3034489aa327        About a minute ago   76.3MB

Step 7 – Running Container

Jalankan image yang baru dibuat pada docker container.

 

$ docker run -d –name appnodejs -p 3000:3000 appnodejs:1.0

 

Perintah atau command di atas menjalankan container dengan nama appnodejs dan mengeksposnya ke port 3000.

Kamu bisa cek container yang sedang berjalan saat ini dengan command berikut.

 

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES

a49642463744        appnodejs:1.0       “node app.js”       36 seconds ago      Up 35 seconds       0.0.0.0:3000->3000/tcp   appnodejs

 

Kemudian kamu bisa coba akses docker container yang berjalan dengan URL: http://IP-Server:port. 

 

Kesimpulan 

Tampilan di atas adalah menandakan bahwa kamu telah berhasil menyelesaikan tutorial Cara Deploy Aplikasi NodeJS ke Docker.

Jika ingin menambahkan script aplikasi yang lain, ikuti step-step di atas.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!

Daftar dan tonton webinar Dewatalks