- Saat membuat dan mendistribusikan aplikasi sebagai image Docker, penggunaan base image yang berat dapat membuat waktu unduh menjadi lama, atau menimbulkan masalah keamanan karena menyertakan data sensitif
- Cara membuat image Docker menjadi lebih ringan dan aman
- Mengurangi ukuran image
- Semakin ringan image Docker, semakin cepat proses build dan deployment aplikasi
- Dengan begitu, deployment bisa dilakukan lebih sering dan lebih banyak, sehingga produktivitas developer meningkat
- Metode
- Teknik multi-stage: membuat beberapa stage, membangun masing-masing secara terpisah, lalu menggabungkan hasilnya ke dalam image yang paling ringan
- Cara meminimalkan penggunaan perintah RUN: perintah RUN membuat image secara terpisah. Untuk meminimalkannya, jalankan sebanyak mungkin skrip dalam satu perintah RUN
- Menghapus source code yang tidak perlu dengan
.dockerignore
README.md atau kode pengujian tidak diperlukan saat membangun aplikasi yang sebenarnya
- File
.env yang berisi informasi sensitif seperti token autentikasi API, file private key .pem, dan direktori .git yang berisi riwayat commit Git tidak boleh dimasukkan ke dalam image Docker
- Untuk mencegah file-file seperti ini masuk ke dalam image Docker, buat file
.dockerignore
- Membuat image yang aman
- Jika image Docker memiliki hak akses root, risikonya bisa besar saat terjadi peretasan
- Metode
- Gunakan versi image yang spesifik: jika versi tidak ditentukan, versi
latest akan diambil secara otomatis sehingga perilaku saat dijalankan bisa berbeda tergantung situasinya
- Hilangkan izin tulis pada
/etc: /etc adalah direktori yang berisi file konfigurasi sistem dan skrip. Aplikasi biasanya tidak perlu mengubahnya, jadi sebaiknya izin tulis dihapus
- Hapus semua file executable: dalam kasus Go, aplikasi dapat dijalankan hanya dengan satu file executable, sehingga semua executable lain yang berpotensi berisiko dihapus
- Beralih ke user biasa: akun root dapat memodifikasi dan mengendalikan seluruh sistem. Buat user dengan hak akses minimum, lalu jalankan aplikasi hanya dengan user tersebut
- Image Docker yang ringan menunjukkan sinergi ketika dipadukan dengan pipeline CI/CD dan metodologi agile
- Image Docker yang aman dapat melindungi bisnis dan membantu mencegah risiko sebelum terjadi
Belum ada komentar.