Docker & DevOps Fundamentals · Pelajaran

Build Multi-Tahap dan Image yang Lebih Kecil

Pelajari cara Dockerfile multi-tahap menghasilkan image produksi yang ramping dengan memisahkan alat build dari runtime akhir, sehingga ukuran image jauh berkurang.

Pelajaran 4 dari 413 langkah

Build Multi-Tahap dan Image yang Lebih Kecil adalah pelajaran Docker & DevOps Fundamentals gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Docker & DevOps Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.

Mengapa Ukuran Image Penting

Image berukuran besar membutuhkan waktu lebih lama untuk dibangun, dikirim, dan diambil, serta memiliki permukaan serangan yang lebih luas. Tujuan rekayasa yang baik adalah mengirimkan image terkecil yang tetap dapat menjalankan aplikasi Anda.

Masalah Pembengkakan Ukuran

Membangun aplikasi sering kali memerlukan kompiler, dependensi pengembangan, dan alat pembangunan. Jika semua itu masuk ke image final, ukurannya akan membengkak—meskipun aplikasi yang berjalan tidak memerlukan satu pun dari semuanya.

Apa Itu Build Multi-Tahap?

Build multi-tahap menggunakan beberapa pernyataan FROM dalam satu Dockerfile. Tahap-tahap awal membangun aplikasi; tahap final hanya menyalin artefak yang sudah selesai, sehingga alat pembangunan tidak ikut terbawa.

Memberi Nama Tahap

Beri nama pada suatu tahap dengan AS agar tahap-tahap berikutnya dapat merujuknya.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci

Membangun pada Tahap Pertama

Tahap pembangunan mengompilasi atau mengemas aplikasi Anda. Di sini semua dependensi pengembangan dan alat yang diperlukan tersedia.

COPY . .
RUN npm run build

Tahap Final yang Ringkas

Mulai tahap final dari image dasar yang minimal, lalu salin hanya hal-hal yang diperlukan aplikasi untuk berjalan menggunakan COPY --from.

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules

Dockerfile Multi-Tahap Lengkap

Menggabungkan berbagai tahap menghasilkan image final yang kecil, berisi aplikasi yang telah dibangun tetapi tanpa rantai alat pembangunan.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ['node', 'dist/main.js']

Memilih Image Dasar yang Kecil

Image dasar sering kali menjadi faktor terbesar. Varian slim dan Alpine dapat mengurangi ukuran image secara signifikan:

  • node:20 ~ besar
  • node:20-slim ~ jauh lebih kecil
  • node:20-alpine ~ paling kecil, pustaka minimal

Dependensi Khusus Produksi

Lewati dependensi pengembangan dalam image waktu proses. Menginstal dengan tanda produksi akan mencegah paket uji dan pembangunan masuk ke dalamnya.

RUN npm ci --omit=dev

Menggunakan .dockerignore

Berkas .dockerignore mencegah hal-hal yang tidak diperlukan masuk ke konteks pembangunan, mempercepat pembangunan, dan menghindari penyalinan rahasia atau folder berukuran sangat besar secara tidak sengaja.

node_modules
.git
.env
Dockerfile
*.log

Mengukur Hasil

Verifikasi pekerjaan Anda dengan memeriksa ukuran image. Image multi-tahap yang dibangun dengan baik dapat berukuran hanya sebagian kecil dari image satu tahap yang dibuat secara sederhana.

docker images myapp

Pemeriksaan Singkat

Uji pengetahuan Anda tentang build multi-tahap.

Ringkasan

Anda telah mempelajari cara mengirimkan image Docker yang ringkas:

  • Build multi-tahap menggunakan beberapa tahap FROM dalam satu Dockerfile
  • Bangun pada tahap awal, lalu gunakan COPY --from untuk menyalin hanya artefak ke tahap final yang ringkas
  • Pilih image dasar yang kecil (slim/Alpine) dan instal hanya dependensi produksi
  • Gunakan .dockerignore untuk mengurangi isi konteks pembangunan

Image yang lebih kecil dibangun lebih cepat, diterapkan lebih cepat, dan lebih aman.

Gratis untuk memulai

Belajar Docker & DevOps Fundamentals dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Build Multi-Tahap dan Image yang Lebih Kecil” gratis?

Ya — teks lengkap “Build Multi-Tahap dan Image yang Lebih Kecil” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Docker & DevOps Fundamentals, upgrade ke CoddyKit PRO. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Build Multi-Tahap dan Image yang Lebih Kecil”?

Pelajari cara Dockerfile multi-tahap menghasilkan image produksi yang ramping dengan memisahkan alat build dari runtime akhir, sehingga ukuran image jauh berkurang. Kamu berlatih Docker & DevOps Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Docker & DevOps Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Docker & DevOps Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Build Multi-Tahap dan Image yang Lebih Kecil” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Docker & DevOps Fundamentals ini?

Ya. Setiap pelajaran Docker & DevOps Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memahami Dockerfile
  2. Membuat Image Docker Kustom
  3. Lapisan dan Optimasi Image
  4. Build Multi-Tahap dan Image yang Lebih Kecil
← Kembali ke Docker & DevOps Fundamentals