Best Practice dalam Menulis Dockerfile
Dengan mengikuti best practice ini, kita dapat membuat image Docker yang efisien, aman, dan mudah dikelola.
Berikut adalah beberapa best practices yang penting:
1. Minimalkan Ukuran Image
Pilih base image yang tepat: Pilih base image yang sekecil mungkin dan hanya berisi komponen yang benar-benar dibutuhkan.
Gunakan multi-stage builds: Memisahkan proses build dan runtime ke dalam tahap yang berbeda dapat mengurangi ukuran final image.
Hapus file yang tidak perlu: Setelah proses build selesai, hapus file-file yang tidak diperlukan lagi.
2. Tingkatkan Keamanan
Jangan gunakan root user: Jalankan aplikasi sebagai non-root user untuk meningkatkan keamanan.
Perbarui paket secara teratur: Pastikan semua paket dalam image selalu diperbarui ke versi terbaru untuk memperbaiki kerentanan keamanan.
Minimalkan permukaan serangan: Hanya pasang paket yang benar-benar dibutuhkan.
Hindari menyimpan secret di Dockerfile: Simpan secret seperti password atau token di environment variable saat menjalankan container.
3. Tingkatkan Efisiensi Build
Cache layer: Manfaatkan caching layer untuk mempercepat proses build.
Optimalkan perintah RUN: Gabungkan beberapa perintah RUN menjadi satu jika memungkinkan untuk mengurangi jumlah layer.
Gunakan .dockerignore: Abaikan file yang tidak perlu di-copy ke image.
4. Jaga Konsistensi
Gunakan versi yang spesifik: Tentukan versi yang spesifik untuk base image, bahasa pemrograman, dan paket lainnya untuk menghindari masalah kompatibilitas.
Ikuti konvensi penamaan: Gunakan konvensi penamaan yang konsisten untuk layer dan tag image.
Contoh Dockerfile dengan Best Practices:
Dockerfile
Penjelasan:
Menggunakan
python:3.9-slim-bustersebagai base image yang kecil.Menggunakan
--no-cache-diruntuk menghindari caching layer yang tidak perlu.Membuat user non-root untuk meningkatkan keamanan.
Menggunakan environment variable untuk menyimpan konfigurasi.
Last updated