Recraftory

Dockerfile

Membuat image Docker dengan Dockerfile

Apa itu Dockerfile

  • File teks yang berisi instruksi untuk membuat Docker image
  • Dibaca secara berurutan dari atas ke bawah
  • Nama file selalu Dockerfile tanpa ekstensi

Instruksi Dasar

FROM

  • Menentukan image dasar yang akan digunakan
  • Harus menjadi instruksi pertama
  • Contoh: FROM node:20-alpine

WORKDIR

  • Menentukan direktori kerja di dalam container
  • Perintah selanjutnya akan berjalan di direktori ini
  • Contoh: WORKDIR /app

COPY

  • Menyalin file dari host ke image
  • Contoh: COPY . /app

RUN

  • Menjalankan perintah selama proses build
  • Digunakan untuk menginstal dependensi
  • Contoh: RUN npm install

CMD

  • Menentukan perintah yang dijalankan saat container start
  • Hanya boleh ada satu CMD dalam Dockerfile
  • Contoh: CMD ["node", "server.js"]

EXPOSE

  • Mendokumentasikan port yang digunakan aplikasi
  • Tidak secara otomatis membuka port, hanya informasi
  • Contoh: EXPOSE 3000

Contoh Dockerfile Sederhana

FROM node:20-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "index.js"]

Build Image dari Dockerfile

  • docker build -t nama-image:tag .
  • -t untuk memberi nama dan tag pada image
  • . menunjukkan lokasi Dockerfile berada

Praktik Terbaik

  • Urutkan instruksi agar layer yang jarang berubah di atas
  • Gunakan image dasar yang ringan seperti alpine
  • Hindari menyimpan secret dalam Dockerfile
  • Gunakan .dockerignore untuk mengabaikan file yang tidak perlu