Dockerfile: Panduan Lengkap Membuat Custom Container

Oleh Fitri Aulia
Dockerfile: Panduan Lengkap Membuat Custom Container 1

Kalau DomaiNesians butuh container yang sesuai banget dengan kebutuhan proyek, buat custom pakai Dockerfile adalah solusinya. Dengan Dockerfile, kamu bisa atur dari awal mulai dari base image, dependencies, sampai konfigurasi khusus, semua bisa dicustom sesuai keinginan. Ini cocok banget buat kamu yang mau kontrol penuh dan buat image yang ringan, efisien, dan siap pakai.

Apa Itu Dockerfile?

Dockerfile adalah semacam file teks yang isinya instruksi step-by-step untuk membuat image Docker. Ibaratnya seperti resep masakan, kita tulis bahan untuk base image dan langkah-langkah install software, copy file, dll, lalu Docker akan membuat image-nya untuk kita. Semua perintah ditulis baris per baris, jadi mudah dipelajari dan dimofikasi sesuai kebutuhan.

Dengan Dockerfile, kamu tidak perlu setup ulang manual tiap kali mau membuat container. Tinggal jalankan docker build, dan Docker langsung menbuat image sesuai isi Dockerfile-nya. Ini membuat proses deployment jadi lebih cepat, konsisten, dan minim error. Cocok banget buat developer yang pengen kerja lebih efisien.

Struktur Dasar Dockerfile

Docker

Dockerfile punya struktur yang simpel tapi sangat powerful untuk membangun image secara konsisten dan terotomatisasi. Dengan memahami struktur dasarnya, MyDomaiNesia bisa membuat lingkungan aplikasi yang stabil, portabel, dan mudah untuk di-deploy. Berikut struktur dasar Dockerfile yang umum digunakan:

  • FROM -> Menentukan base image yang mau dipakai, misalnya FROM python:3.10 atau FROM alpine.
  • RUN -> Buat menjalankan perintah di dalam image, seperti install software dengan:
  • COPY / ADD -> Memindahkan file dari komputer host ke dalam image (COPY . /app).
  • WORKDIR -> Set direktori kerja di dalam container, agar perintah selanjutnya dijalankan dari situ (WORKDIR /app).
  • ENV -> Untuk set environment variable (ENV NODE_ENV=production).
  • EXPOSE -> Digunakan untuk menunjukkan port yang akan dipakai container saat jalan (EXPOSE 3000).
  • CMD / ENTRYPOINT -> Menentukan perintah utama yang dijalankan saat container aktif (CMD [โ€œnodeโ€, โ€œapp.jsโ€]).
Baca Juga:  Panduan Lengkap Install Flask di VPS Ubuntu

Langkah-Langkah Membuat Dockerfile

Membuat Dockerfile itu tidak ribet, asal tahu urutannya. Berikut langkah-langkah simpel yang bisa kamu ikuti:

1. Tentukan base image

Mulai dengan FROM. Pilih image dasar yang sesuai, kayak FROM node:18 kalau kamu ingin membuat app Node.js.

2. Set direktori kerja (optional)

Supaya rapi, kamu bisa pakai WORKDIR /app buat set folder kerja di dalam container.

3. Copy file ke image

Gunakan COPY . /app untuk memasukkan semua file dari proyek lokal ke dalam image.

4. Install dependency

Kalau perlu install package, pakai RUN. Misalnya:

5. Set environment variable (kalau ada)

Contoh: ENV NODE_ENV=production.

6. Buka port yang dibutuhin

Pakai EXPOSE 3000 atau port lain yang sesuai sama aplikasi kamu.

7. Tentukan perintah saat container jalan

Terakhir, pakai CMD atau ENTRYPOINT, contohnya CMD [โ€œnodeโ€, โ€œindex.jsโ€].

Contoh Dockerfile Sederhana (Node.js)

Menggunakan Dockerfile untuk Membangun Custom Container

# 1. Base image

Setelah itu bisa build image-nya pakai dan image custom kamu siap jalan dengan command berikut:

Tips Optimasi Dockerfile

Agar image Docker kamu lebih kecil dan proses build-nya lebih cepat, ada beberapa trik yang bisa kamu coba:

1. Gunakan base image yang lebih ringan

Misalnya, pilih alpine atau slim version daripada image yang lebih besar seperti ubuntu. Contoh: FROM node:18-alpine.

2. Gabungkan perintah RUN

Daripada menulis banyak RUN yang masing-masing menbuat layer baru, bisa digabung jadi satu. Misalnya:

Baca Juga:  Cara Membuat Mailing List di VPS Ubuntu

3. Minimize file yang di-copy

Pakai .dockerignore untuk menghindari file yang tidak perlu, seperti file log atau node_modules. Jadi hanya file penting yang masuk ke dalam image.

4. Gunakan โ€“no-cache saat build

Kalau kamu mau rebuild apps, tambahkan opsi โ€“no-cache agar Docker tidak pakai cache lama yang bisa membuat build lebih lama.

5. Buat multi-stage builds

Kalau aplikasi kamu butuh build tools, kamu bisa pakai multi-stage build supaya hanya hasil akhirnya yang masuk ke image. Contoh:

Multi Stage

Di sini, build hanya buat proses build, sedangkan hasil akhirnya aja yang dipakai di image stage kedua.

Kesalahan Umum yang Harus Dihindari

Membuat Dockerfile itu mudah loh, tapi ada beberapa kesalahan yang sering muncul dan bisa bikin build gagal atau image jadi berat. Berikut beberapa yang harus dihindari:

  1. Terlalu Banyak Layer
    Salah satu kesalahan umum adalah terlalu banyak instruksi RUN, COPY, atau ADD yang terpisah. Setiap perintah ini membuat layer baru, yang menambah ukuran image. Solusinya, menggabungkan perintah-perintah yang mirip supaya jumlah layer tidak menumpuk.
  2. Tidak Menghapus Cache
    Misalnya setelah install package, kamu tidak menghapus cache atau file yang tidak perlu, seperti apt-get cache di image Ubuntu. Ini bisa membuat image jadi berat. Selalu hapus temporary files yang tidak dibutuhkan dengan cara seperti:
    RUN apt-get clean && rm -rf /var/lib/apt/lists/*
  3. Salah Menentukan Base Image
    Memilih base image yang terlalu besar atau tidak sesuai kebutuhan bisa membuat image kamu jadi lebih berat. Misalnya, jika hanya butuh runtime, lebih baik pakai image yang ringan seperti node:18-alpine daripada node:18 yang lebih besar.
  4. Pakai CMD dan ENTRYPOINT Ganda
    Jangan sampai kamu punya CMD dan ENTRYPOINT yang bentrok, karena ini bisa membuat bingung perintah mana yang akan dijalankan saat container start. Pilih salah satu dan pastikan konsisten.
  5. Menggunakan Versi Tertentu Tanpa Alasan
    Walaupun menarik untuk memakai versi terbaru dari sebuah image atau aplikasi, kadang lebih baik pakai versi yang lebih stabil dan teruji. Misalnya, daripada selalu pakai FROM node:latest, pakai versi tertentu seperti FROM node:18 supaya lebih stabil.
  6. Salah Menentukan WORKDIR
    Kalau kamu tidak hati-hati menetukan WORKDIR, bisa jadi file kamu di-copy ke direktori yang salah. Pastikan path direktori kerjanya sudah benar agar aplikasi jalan sesuai harapan.
Baca Juga:  Cara Mengubah Bahasa Utama VPS Ubuntu - Lokalisasi Bahasa Utama

Kesimpulan

Membuat Dockerfile itu sebenarnya tidak sulit, jika MyDomaiNesia mengerti beberapa prinsip dasarnya. Mulai dari memilih base image yang tepat, mengatur perintah-perintah dengan efisien, sampai menghindari kesalahan umum yang bisa buat build jadi lambat atau image jadi berat. Dengan tips optimasi, kamu bisa bikin image yang ringan dan build lebih cepat.

Kalau kamu butuh tempat yang stabil dan cepat buat menjalankan Docker container kamu, coba pertimbangkan menggunakan Cloud VPS. Dengan VPS, kamu bisa lebih fleksibel dalam manage server, punya kontrol penuh atas resources, dan pastinya lebih aman buat aplikasi kamu.

Fitri Aulia

Hi! I'm a tech enthusiast who loves digging into how things work, especially in web development, VPS setups, and anything open-source.

Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Migrasi Hosting ke DomaiNesia Gratis 1 Bulan

Ingin memiliki hosting dengan performa terbaik? Migrasikan hosting Anda ke DomaiNesia. Gratis jasa migrasi dan gratis 1 bulan masa aktif!

Ya, Migrasikan Hosting Saya

Hosting Murah

This will close in 0 seconds