Kesempatakan kali ini saya ingin mencontohkan bagaimana menjalankan aplikasi Node.js sederhana di Docker Container.

Buat Aplikasi Node.js

Pada contoh ini kita coba buat contoh aplikasi node.js yang paling dasar. Hanya sekedar test-run output pada browser “Hello World” dan message console.

File packages.json

Pertama, pada workdir Anda buat file packages.json kemudian jalankan perintah npm install untuk generate file packages-json.lock yang akan nanti kita copy ke docker images kita.

{
    "name": "docker_nodejs-helloworld",
    "version": "1.0.0",
    "description": "Node.js on Docker",
    "author": "Modalsemangat.com",
    "main": "server.js",
    "scripts": {
      "start": "node server.js"
    },
    "dependencies": {
      "express": "^4.18.2"
    }
  }

File server.js

Kemudian, buat file server.js contoh web apps sederhana yang hanya menggunakan framework Express.js.

'use strict';
 
const express = require('express');
 
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
 
// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hallo Dunia');
});
 
app.listen(PORT, HOST, () => {
  console.log(`Running on http://${HOST}:${PORT}`);
});

Selanjutnya, kita akan mencoba menjalankan aplikasi ini di dalam docker container.

Membuat Node.js Docker Image

Kita akan membuat Docker Image yang dibutuhkan untuk menjalankan aplikasi Anda.

File Dockerfile

Pada contoh ini kita akan menggunakan image node.js yang sudah disediakan dari Docker Hub. Contoh ini saya pakai versi terakhir node tag lts-alpine.

FROM node:lts-alpine
# app directory
WORKDIR /app
# Copy file packages.json & packages-json.lock  untuk install app dependencies
COPY package*.json ./
# Install app dependencies
RUN npm install
COPY . .
# Expose port yang digunakan app, samakan dengan parameter port server.js Anda.
EXPOSE 8080 
CMD [ "node", "server.js" ]

Contoh isi file nya akan seperti ini.

File .dockerignore

Buat file .dockerignore agar mencegah directory module & file log tidak ikut di copy ke docker image.

node_modules
npm-debug.log

Build Docker Image

Jalankan perintah berikut dalam folder yang terdapat file Dockerfile untuk mulai build docker image.

docker build . -t <username_anda>/nodejs-helloworld

Jalankan Docker Image

Setelah docker images sukses dibuat, ketik perintah berikut untuk menjalankan Node.js Docker Image pada Container Docker.

docker run --name nodejs-helloworld -p 8080:8080 -d <your username>/nodejs-helloworld

Similar Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *