Memanfaatkan Caching Build
Optimalkan waktu build Docker dengan memahami dan menggunakan mekanisme cache build Docker secara efektif.
Memanfaatkan Caching Build adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 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 DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Bangun Lebih Cepat dengan Caching
Membangun image Docker dapat memerlukan waktu, terutama untuk aplikasi yang kompleks. Cache build Docker adalah fitur cerdas yang membantu mempercepat proses secara drastis!
Fitur ini bekerja dengan menggunakan kembali layer dari build sebelumnya, sehingga Docker tidak perlu membangun ulang semuanya dari awal setiap kali.

Build Berlapis
Saat Anda membangun image Docker menggunakan Dockerfile, Docker menjalankan setiap instruksi baris demi baris.
- Setiap instruksi, seperti
FROM,RUN, atauCOPY, membuat "layer" baru dalam image Anda. - Layer-layer ini ditumpuk satu di atas yang lain untuk membentuk image akhir.
Pemeriksaan Cache Docker
Sebelum menjalankan suatu instruksi, Docker memeriksa apakah layer yang sama persis sudah pernah dibuat sebelumnya. Docker membandingkan:
- Instruksi itu sendiri (misalnya,
RUN apt update). - "Konteks" untuk instruksi tertentu (misalnya, file yang akan di-
COPY).
Jika ditemukan layer yang cocok, Docker menggunakannya kembali dari cache alih-alih menjalankan instruksi tersebut lagi.
Membatalkan Cache
Cache sangat berguna, tetapi tidak selalu digunakan. Jika Docker mendeteksi perubahan apa pun pada suatu instruksi atau konteksnya, cache untuk layer tersebut dan semua layer setelahnya akan dibatalkan.
Artinya, Docker akan membangun ulang mulai dari titik tersebut dan mengabaikan semua layer yang tersimpan dalam cache di bawahnya.
Pengurutan Instruksi yang Cerdas
Untuk memaksimalkan penggunaan cache, susun instruksi Dockerfile dari yang paling kecil kemungkinannya untuk berubah hingga yang paling besar kemungkinannya untuk berubah.
- Dependensi yang stabil terlebih dahulu: Instal paket sistem atau dependensi aplikasi yang jarang berubah.
- Kode aplikasi terakhir: Salin kode sumber aplikasi Anda, yang sering berubah, sedekat mungkin dengan bagian akhir.
Pengurutan untuk Menggunakan Cache
Mari kita lihat contohnya. Dengan menempatkan perintah RUN pip install (yang biasanya lebih jarang berubah) sebelum COPY . . (yang berubah setiap kali kode diperbarui), Docker dapat menggunakan kembali layer dependensi.
Bayangkan requirements.txt berisi flask dan gunicorn, sedangkan app.py adalah aplikasi utama Anda.
Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]Jika hanya app.py yang berubah, Docker hanya membangun ulang layer COPY dan CMD terakhir, sehingga menghemat waktu!
Penyalinan Selektif dengan .dockerignore
Saat Anda menggunakan COPY . ., Docker memeriksa setiap file dalam konteks build untuk mengetahui perubahan. Bahkan file kecil yang tidak relevan (seperti folder .git atau data pengujian lokal) dapat membatalkan cache.
Gunakan file .dockerignore untuk mengecualikan file dan direktori yang tidak diperlukan dari konteks build Anda. Dengan demikian, file dan direktori tersebut tidak akan memicu pembatalan cache.
.dockerignore dalam Praktik
Tempatkan file bernama .dockerignore di root konteks build Anda (di sebelah Dockerfile).
Contoh .dockerignore:
.git
.venv
__pycache__
*.log
node_modulesSekarang, saat Anda menggunakan COPY . ., Docker mengabaikan file-file tersebut sehingga penggunaan cache menjadi lebih andal!
Kapan Harus Melewati Cache
Terkadang, Anda ingin memastikan semuanya dibangun dari awal dengan mengabaikan cache sepenuhnya. Hal ini berguna untuk melakukan debug atau memastikan Anda memiliki versi dependensi yang benar-benar terbaru.
Anda dapat memaksa Docker untuk membangun ulang tanpa menggunakan cache dengan menambahkan opsi --no-cache ke perintah build Anda:
docker build --no-cache -t my-app:latest .Pemeriksaan Optimasi Cache
Anda sedang membangun image Docker untuk aplikasi Node.js. Dockerfile Anda saat ini terlihat seperti berikut:
FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]Perubahan mana yang paling baik untuk mengoptimalkan Dockerfile ini agar memanfaatkan caching build?
Rangkuman: Kuasai Cache!
Kerja bagus! Anda telah mempelajari cara memanfaatkan cache build Docker untuk membangun image dengan lebih cepat.
- Docker membangun image layer demi layer dan menggunakan kembali layer yang tersimpan dalam cache jika memungkinkan.
- Perubahan pada suatu instruksi atau konteksnya akan membatalkan cache mulai dari titik tersebut.
- Lakukan optimasi dengan mengurutkan instruksi dari yang paling kecil hingga paling besar kemungkinannya untuk berubah.
- Gunakan
.dockerignoreuntuk mengecualikan file yang tidak relevan dari konteks build. - Gunakan
--no-cacheuntuk memaksa build baru jika diperlukan.
Caching yang efisien menghasilkan siklus pengembangan yang lebih cepat dan deployment yang lebih lincah!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memanfaatkan Caching Build” gratis?
Ya — teks lengkap “Memanfaatkan Caching Build” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memanfaatkan Caching Build”?
Optimalkan waktu build Docker dengan memahami dan menggunakan mekanisme cache build Docker secara efektif. Kamu berlatih DevOps Bootcamp 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 DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp 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 2 dari 4.
Berapa lama pelajaran “Memanfaatkan Caching Build” 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 DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp 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
- Build Multi-Tahap untuk Efisiensi
- Memanfaatkan Caching Build
- Praktik Terbaik Keamanan Dockerfile
- Meminimalkan Ukuran Image dengan Basis Slim dan Distroless