Cara membuat docker container yang berisi aplikasi nodejs

Tutorial kali ini saya buat karena kebetulan saya sedang ingin belajar membuat nodejs dari awal, termasuk memulai dari pembuatan docker container. Untuk sumber-sumber referensi, saya sertakan di akhir postingan.


Ok langsung gitu, kita mulai tahapan yang saya buat ya (untuk catatan, saya sudah berhasil mencoba dan menjalankan)!


berikut adalah Spec dari teknologi yang saya gunakan:

  • Docker. Docker adalah sebuah aplikasi yang bersifat open source yang berfungsi sebagai wadah/container untuk memasukkan sebuah software secara lengkap beserta semua hal lainnya yang dibutuhkan oleh software tersebut dapat berfungsi.
  • Node.JS, pastikan nodejs & npm terinstall karena kita akan meng-install dependency menggunakan npm
  • Ubuntu / OS sejenis
Mari kita mulai saja langkah-langkah untuk membuat docker dan file lain yang diperlukan
1. Buat 1 folder untuk semua fille nodejs misalnya folder: /nodeapp
2. Buat package.json
{
  "name": "docker_web_app",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.1"
  }
}
3. run : npm install
4. buat file server.js yang akan menjadi main file nodejs kita, isinya:
'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('Hello World');
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
5. Buat file Dockerfile untuk buat docker container (harus sudah install npm dan docker)
6. Isi Dockerfile dengan :

FROM node:12


# Create app directory

WORKDIR /usr/src/app


# Install app dependencies

# A wildcard is used to ensure both package.json AND package-lock.json are copied

# where available (npm@5+)

COPY package*.json ./


RUN npm install

# If you are building your code for production

# RUN npm ci --only=production


# Bundle app source

COPY . .


EXPOSE 8080

CMD [ "node", "server.js" 


7. buat .dockerignore file, isi file2 yang mau kita ignore supaya tidak di proses di dalam image yang kita mau buat

node_modules

npm-debug.log


8. buat docker image di folder /nodeapp yang mengacu pada file dockerfile

                docker build -t <your username>/node-web-app .

9. Buat container dengan menjalankan docker image

10. docker run -p 8100:8080 -d --name node-app albertto/node-app

11. Jalankan dan masuk ke docker dengan: docker exec -it <container id> /bin/bash

12. cek apakah container nya jalan: curl -i localhost:8100


Source:
2. https://www.digitalocean.com/community/tutorials/how-to-build-a-node-js-application-with-docker
3. https://buddy.works/guides/how-dockerize-node-application
4. https://www.docker.com/

Comments

Popular posts from this blog

Product Manager - Apa, Siapa & Bagaimana?

Upgrading Python version di Mac OS

Data Science - Pengenalan