Dockerize projek nodejs

docker Nodejs

Nah yang mungkin masih di bingungkan para pengguna docker pemula salah satunya adalaha “bagimanna agar project yang tak bangun ini bisa di bungkus dngan docker dan kemudian dijalankannya? ” . betul ora? wkw

analoginya seperti ini, ketika kita membuat suatu project, bagaimana agar project yang kita buat tadi bisa dijalankan dengan docker, yang pertama adalah kita harus membuat sebuah paket image docker dengan software2 yang dibutuhkan. oke langsung kita buat conatoh saja.

saya akan membuat simple project (hello world) dengan nodejs (temen-temen bisa membuat project dengan bahasa lain, bebas !) , yang pertama saya lakukan adalah dengan membuat image dengan OS ubuntu(bisa yang lain) , kemudian menginstall kebutuhan lain yaitu nodejs, kalau temen2 develop dengan php, temen2 bisa insatll apache dan php pada docker image tersebut. oke langsung saja kita praktekin saja, tak usah bertele-tele..

1. Buat File package.json (digunakan untuk memanage depedencies nodejs), kira-kira isinya seperti ini :

{
  "name": "hello_world",
  "version": "1.0.0",
  "description": "Node.js On Docker",
  "author": "First Last <aan.elzam93@gmail.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.1"
  }
}

2. Simple Script nodejs, buat file dengan nama server.js
oke sekarang kita mulai membuat simple code nya dengan nodejs,

'use strict';

const express = require('express');

// Constants
const PORT = 3001;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello world\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

3. Buat docker file “Dockerfile
Nah simple code nya sudah terbuat, temen2 bisa customer seperti apa, sekarang saatnya membuat docker file, docker file ini digunakan untuk run otomatis sesuai isi docker file, misal kita ingin menginstall nodejs v4 atau yang lain, ,install mysql dll tinggal tulis di dockerfile nya, oke kita akan buat simple scritp pada docker file nya kira2 seperti ini:

FROM node:8

  • nah ini kita deklarasikan kebutuhan nodejs versinya, contoh disdini saya menggunakan nodejs v8

WORKDIR /usr/src/app

  • next kita membuat folder untuk menaruh apps nya, kita tarus di foder /usr/src/app

COPY package*.json ./

  • kemduian kita copy file packaje.json yang kita buat tadi kedalam dockr images

RUN npm install

  • perintah sederhana untuk menjalankan dependensi nodejs

COPY . .
-nah yang ini digunakan untuk mengcopy semua file pekerkaan kita kedalam docker image

EXPOSE 8080
-expose digunakan untuk membuka port yang ada di docker image

CMD [ “npm”, “start” ]
-terakkhir adalah script ini digunakan untuk start aplikasi


4. Build docker file nya
pada tahap ini kita akan membuild script yang ada di dockerfile tadi, jalankan perintah
$docker build -t <username>/node-web-app .
biarkan proses selesai, waktu tergantung koneksi internet, karena perintah ini akan mendownload OS dan software2 yan dibutuhkan misal nodejs


setelah slesai coba jalan kan “docker images” hasilnya kira2 seperti ini:


5. Jalankan image denan perintah dibawah ini

$ docker run -p 49160:3001 -d gt/node-web-app
sedikti singkat tentang penjelasan script diatas adalah
-p untuk direct port,misal di docker kita jalankan port 3001, ketika kita membuaka dari komputer kita, kita setting port 49160 dan akan di directkan ke port 3001
– d digunakan untuk menjalankan pada background process, jika hanya untuk coba2 jalan atau tidaknya, peintah -d bisa di abaikan
, terooot, jika sudah tinggal ldi cek di browser dan hasilnya seperti ini :

nah jika temen2 mau masuk ke docker container nya bisa menggunakan perintah seperti ini :

$ docker exec -it <container id> /bin/bash

Leave a Reply

Your email address will not be published. Required fields are marked *