Advertisement

Membuat Docker Image dari Aplikasi Sederhana (Node.js) – Biar Aplikasi Kamu Bisa Jalan di Mana Saja!

 File:Docker (container engine) logo.svg


Di artikel ini, kita bakal bikin Docker Image dari aplikasi Node.js sederhana, lalu menjalankannya sebagai container. Serius, ini gampang banget!

 Step-by-step:

  1. Buat aplikasi Node.js sederhana
  2. Tulis Dockerfile untuk membuat image
  3. Build Docker Image
  4. Jalankan container dari image yang dibuat

Siap? Ayo mulai!

1. Buat Aplikasi Node.js Sederhana

Buat folder proyek baru:

mkdir my-docker-app && cd my-docker-app

Inisialisasi proyek Node.js:

npm init -y

Ini bakal membuat file package.json.

Buat file server.js:

const http = require("http");

const server = http.createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "text/plain" });
  res.end("Hello from Dockerized Node.js App!");
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Uji coba aplikasi secara lokal:

node server.js

Buka http://localhost:3000, kalau muncul "Hello from Dockerized Node.js App!", berarti sukses!

2. Buat Dockerfile untuk Membuat Image

Dockerfile adalah resep untuk bikin image. Buat file Dockerfile di folder proyek dan isi seperti ini:

# Gunakan image Node.js versi terbaru sebagai base image
FROM node:latest

# Set direktori kerja di dalam container
WORKDIR /app

# Copy file package.json dan package-lock.json (kalau ada)
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy semua file proyek ke dalam container
COPY . .

# Tentukan port yang akan digunakan
EXPOSE 3000

# Perintah untuk menjalankan aplikasi
CMD ["node", "server.js"]

 Penjelasan Dockerfile:

  • FROM node:latest → Gunakan image Node.js terbaru
  • WORKDIR /app → Set folder kerja di container
  • COPY package*.json ./ → Copy file package.json
  • RUN npm install → Install dependency
  • COPY . . → Copy semua file proyek ke dalam container
  • EXPOSE 3000 → Buka port 3000
  • CMD ["node", "server.js"] → Jalankan aplikasi saat container mulai

3. Build Docker Image dari Aplikasi Node.js

Sekarang, kita bisa build Docker Image dari aplikasi ini!

docker build -t my-node-app .

 Penjelasan:

  • docker build → Perintah untuk membuat image
  • -t my-node-app → Nama image yang kita buat
  • . → Gunakan Dockerfile yang ada di direktori saat ini

Kalau berhasil, bakal ada output seperti ini:

Successfully built abc123def456
Successfully tagged my-node-app:latest

 Docker Image berhasil dibuat!

 Cek daftar image yang ada di sistem:

docker images
REPOSITORY     TAG       IMAGE ID        CREATED         SIZE
my-node-app    latest    abc123def456    5 minutes ago  150MB

4. Jalankan Container dari Docker Image yang Dibuat

Saatnya menjalankan container dari image kita!

docker run -d -p 3000:3000 my-node-app

 Penjelasan:

  • -d → Jalankan di background (detached mode)
  • -p 3000:3000 → Hubungkan port host dengan container
  • my-node-app → Nama image yang dibuat sebelumnya

Cek apakah container berjalan:

docker ps

Kalau muncul daftar container dengan image my-node-app, berarti berhasil!

 Coba akses di browser:
Buka http://localhost:3000, harusnya muncul teks:

Hello from Dockerized Node.js App! 

5. Menghentikan dan Menghapus Container

Kalau mau menghentikan container, jalankan:

docker stop <CONTAINER_ID>

Untuk menghapus container:

docker rm <CONTAINER_ID>

 Cek daftar container yang berjalan:

docker ps

6. Mengupload Image ke Docker Hub (Opsional)

Kalau mau share image ke Docker Hub, kita bisa upload dengan perintah ini:

1️ Login ke Docker Hub:

docker login

2️ Tag image sebelum push:

docker tag my-node-app username/my-node-app

3️ Upload image ke Docker Hub:

docker push username/my-node-app

Sekarang orang lain bisa langsung pakai image kita dengan:

docker pull username/my-node-app

7. Troubleshooting – Jika Ada Masalah!

 Kasus 1: Perubahan di Kode Tidak Terdeteksi Setelah Build Ulang

 Error:
Aplikasi tetap menjalankan kode lama meskipun sudah di-build ulang.
  Solusi:
Gunakan --no-cache saat build ulang:

docker build --no-cache -t my-node-app .

 Kasus 2: Port 3000 Sudah Dipakai

 Error:

Bind for 0.0.0.0:3000 failed: port is already allocated

 Solusi:
Gunakan port lain:

docker run -d -p 4000:3000 my-node-app

Akses di http://localhost:4000.

Kesimpulan: Sekarang Kamu Punya Docker Image Sendiri!

 Ringkasan Cepat:
  Buat aplikasi Node.js sederhana (file server.js)
  Tulis Dockerfile untuk mendefinisikan image
  Build image dengan docker build -t my-node-app .
  Jalankan container dengan docker run -d -p 3000:3000 my-node-app
  Akses aplikasi di http://localhost:3000

Sekarang aplikasi kamu bisa dibungkus dalam container, sehingga bisa dijalankan di mana saja tanpa ribet setting ulang!

Post a Comment

0 Comments