Docker Image Layers & Build Caching
Setiap instruksi di dalam Dockerfile (seperti RUN, COPY, ADD) menghasilkan sebuah **Read-Only Layer** baru di atas layer sebelumnya.
Mekanisme Build Cache Docker
Jika tidak ada perubahan pada suatu layer dan layer-layer sebelumnya, Docker akan memanfaatkan **Build Cache** sehingga proses build berikutnya selesai dalam hitungan detik!
⚡ Trik Optimasi Urutan Dockerfile:
Selalu letakkan instruksi yang jarang berubah (seperti menginstal dependensi
Selalu letakkan instruksi yang jarang berubah (seperti menginstal dependensi
package.json atau go.mod) di bagian ATAS, dan kode sumber aplikasi yang sering diubah di bagian BAWAH.
Contoh Struktur DOKERFILE SALAH (Lambat):
COPY . .
RUN npm install # <--- npm install akan SELALU diulang setiap kali ada 1 baris kode berubah!
Contoh Struktur DOKERFILE BENAR (Cepat dengan Cache):
COPY package*.json ./
RUN npm install # <--- Di-cache! Hanya diulang jika package.json berubah
COPY . .
File .dockerignore
Mirip dengan .gitignore, file .dockerignore mencegah file yang tidak perlu (seperti node_modules, .git, file log) terikut saat perintah COPY . . dijalankan.