Advertisement

Membangun Docker Image dari Dockerfile

 File:Docker (container engine) logo.svg

 

“Udah bikin Dockerfile, terus ngapain?” – Orang yang masih galau.

Kalau kamu udah punya Dockerfile, selamat!  Tapi... gimana cara bikin Docker Image dari situ? Tenang, kamu nggak sendirian! Banyak yang masih bingung gimana cara "membangun" Docker Image dengan benar.

Di artikel ini, kita bakal bahas:
  Apa itu Docker Image dan kenapa penting?
  Cara membangun Docker Image dari Dockerfile
  Perintah docker build dan opsi-opsinya
  Tips optimasi Docker Image biar nggak kegedean
  Troubleshooting error saat build Docker Image

Siap? Ayo ngedocker bareng!

1. Apa Itu Docker Image?

 Docker Image adalah cetakan (template) untuk menjalankan container. Bisa dibilang ini adalah versi "baku" dari aplikasi kamu yang bisa dijalankan di mana saja.

 Kenapa Docker Image itu penting?
  Konsisten → Aplikasi berjalan sama di semua environment.
  Portabel → Bisa dikirim ke tim lain atau di-deploy ke cloud.
  Ringan → Dibanding Virtual Machine, image lebih kecil & cepat.

Docker Image dibuat dari Dockerfile!  Jadi, kita harus "membangun" image dari file tersebut.

2. Cara Membangun Docker Image dari Dockerfile

Misalkan kita punya aplikasi Node.js sederhana dengan Dockerfile berikut:

# Gunakan base image Node.js versi ringan
FROM node:18-alpine

# Set direktori kerja di dalam container
WORKDIR /app

# Copy file package.json dan package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy semua file ke dalam container
COPY . .

# Tentukan port yang akan digunakan
EXPOSE 3000

# Jalankan aplikasi saat container dimulai
CMD ["node", "server.js"]

 Langkah 1: Buka Terminal dan Pindah ke Direktori Proyek

Pastikan kamu berada di folder yang berisi Dockerfile.

cd /path/to/proyek

 Langkah 2: Jalankan Perintah Build Docker Image

Gunakan perintah berikut untuk membangun Docker Image:

docker build -t my-node-app .

 Penjelasan:

  • docker build → Perintah untuk membangun image.
  • -t my-node-app → Memberi nama my-node-app ke image.
  • . → Menunjukkan bahwa Dockerfile ada di direktori saat ini.

 Output-nya akan seperti ini:

Sending build context to Docker daemon  4.096kB
Step 1/7 : FROM node:18-alpine
Step 2/7 : WORKDIR /app
Step 3/7 : COPY package*.json ./
Step 4/7 : RUN npm install
Step 5/7 : COPY . .
Step 6/7 : EXPOSE 3000
Step 7/7 : CMD ["node", "server.js"]
Successfully built a1b2c3d4e5f6
Successfully tagged my-node-app:latest

Yeay!  Docker Image kamu sudah jadi!

 Langkah 3: Cek Hasil Build Docker Image

Cek apakah image kamu sudah terdaftar dengan perintah:

docker images

 Output-nya kira-kira seperti ini:

REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
my-node-app      latest    a1b2c3d4e5f6   10 seconds ago  120MB

 Image berhasil dibuat! Sekarang kita bisa menjalankan container dari image ini.

 Langkah 4: Jalankan Container dari Docker Image

Gunakan perintah berikut untuk menjalankan container:

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

 Penjelasan:

  • -d → Menjalankan container di background (detached mode).
  • -p 3000:3000 → Memetakan port lokal ke container.
  • my-node-app → Nama image yang kita buat tadi.

 Sekarang coba buka http://localhost:3000 di browser. Taraaa! Aplikasi berjalan di dalam container!

3. Opsi Tambahan dalam docker build

Kamu bisa mengoptimalkan docker build dengan beberapa opsi berikut:

 Memberi tag versi tertentu:

docker build -t my-node-app:v1 .

Ini berguna jika kamu ingin versi v1, v2, v3, dst.

 Menghapus layer cache (force rebuild):

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

Gunakan ini jika perubahan dalam image nggak terdeteksi.

 Melihat proses build secara detail:

docker build --progress=plain -t my-node-app .

4. Tips Optimasi Docker Image

 Gunakan base image yang kecil
Misalnya, node:18-alpine jauh lebih kecil dibanding node:18.

 Gunakan .dockerignore untuk mengabaikan file yang nggak perlu
Contohnya:

node_modules
.git
.env

Supaya image nggak ikut membawa file yang nggak perlu!

 Susun perintah COPY dan RUN dengan benar
Urutan yang buruk bisa bikin Docker build lebih lambat.

 Gunakan multi-stage build untuk image yang lebih ringan
Misalnya, untuk aplikasi dengan build step seperti React atau Vue.js.

5. Troubleshooting: Mengatasi Error Saat Build Docker Image

 Error: "No such file or directory"
  Pastikan Dockerfile ada di direktori yang benar.

 Error: "Cannot find module"
  Mungkin kamu lupa menjalankan npm install atau pip install.

 Error: "Permission denied"
  Tambahkan RUN chmod +x <file> jika ada file yang perlu permission execute.

 Error: "Failed to fetch image"
  Coba jalankan docker pull node:18-alpine untuk memastikan image base tersedia.

6. Kesimpulan: Docker Image = Deploy Lebih Mudah!

 Intinya:
  Docker Image dibuat dari Dockerfile.
  Gunakan docker build -t nama-image . untuk membangun image.
  Cek image dengan docker images.
  Jalankan container dengan docker run -d -p port:port nama-image.
  Gunakan optimasi dan troubleshooting supaya build lebih cepat dan lancar.

Sekarang giliran kamu!
Udah berhasil build Docker Image sendiri? Atau masih nemu error?

Post a Comment

0 Comments