‫Jadi apa yang kita lakukan dengan file ini?
‫Baiklah, mari kita keluar. Kita akan melihat di direktori ini bahwa kita hanya memiliki file yang satu ini.
‫Ukurannya hampir k.
‫Jelas tidak ada apa pun di dalamnya selain teks, tapi itu adalah petunjuk tentang cara membangun
‫gambar kita.
‫Perintah from, ketika saya membuat gambar ini, akan benar-benar menarik gambar debian jessie dari Docker Hub
‫ke cache lokal saya. Dan kemudian akan mengeksekusi baris demi
‫baris setiap bait di dalam mesin docker saya dan cache masing-masing
‫lapisan itu.
‫Mari kita ketik build docker image dan kita akan menandainya.
‫Ingat, itulah nama yang akan kita berikan gambar.
‫Karena saya hanya akan menggunakan gambar ini secara lokal, saya tidak harus menggunakan nama akun Docker Hub saya. Saya bisa menyebutnya apa pun yang
‫saya inginkan.
‫Saya akan menyebutnya custom nginx, dan saya akan meletakkan sebuah titik di sini, yang pada dasarnya mengatakan,
‫buatlah dockerfile di direktori ini. Dan Anda akan melihat bahwa langkah-langkah
‫ini melalui ini, bahwa setiap langkah adalah sebuah baris di dockerfile yang dieksekusi di dalam gambar ini ketika sedang membangunnya.
‫Dan kemudian ada sedikit hash pada akhirnya yang sebenarnya adalah hash yang disimpan
‫dalam build cache sehingga saat berikutnya kita membangun hal ini, jika baris itu tidak berubah
‫di dockerfile, itu tidak akan menjalankannya kembali.
‫Ini adalah salah satu bagian ajaib mengapa Docker membuat penyebaran dan membangun perangkat lunak begitu cepat adalah
‫apakah sebenarnya cukup cerdas untuk menyimpan langkah-langkah dalam membangun.
‫Jadi, cukup sering, setelah Anda membuat gambar pertama kali, dan Anda benar-benar hanya di sana mengubah
‫kode sumber khusus Anda dan tidak perlu mengubah aplikasi itu sendiri, semua
‫hal pemasangan ini sudah terjadi.
‫Jadi, Anda akan memiliki waktu pembangunan yang sangat singkat.
‫Oke, jadi sekarang kita selesai membangun. Itu membutuhkan waktu sekitar satu menit.
‫Tetapi, bagaimana jika saya kembali ke file itu? Saya akan menambahkan port terbuka tambahan.
‫Sebagai contoh, saya hanya akan melakukan 8080.
‫Sekarang, itu tidak berarti bahwa nginx cukup pintar untuk mengetahui bahwa saya membuka port ini, atau
‫bahwa cara apa pun berkomunikasi dengan nginx.
‫Hanya saya yang mengizinkan kontainer menerima paket di port itu.
‫Hanya untuk memastikan, mari kita lakukan gambar buruh pelabuhan ls. Kita akan melihat di bagian atas bahwa itu secara otomatis menandai itu sebagai
‫yang terbaru, bukan?
‫Karena kami hanya menyebutnya nama repositori.
‫Kami sebenarnya tidak memberinya nama tanda titik dua ketika kami memberi tag.
‫Jadi mari kita bangun lagi.
‫Wow, itu cepat, kan?
‫Kami hanya butuh beberapa detik. Dan Anda akan melihat bahwa pada setiap langkah itu akan mengatakan menggunakan cache. Dimulai dengan Langkah 2, ia akan
‫mengatakan
‫menggunakan cache, menggunakan cache pada 3, menggunakan cache pada 4. Pada 5, ia mengakui pada langkah 5, bahwa
‫garis itu berbeda.
‫Jadi itu benar-benar mengeksekusi itu ke dalam wadah. Dan kemudian, pada Langkah 6, itu harus menjalankan kembali
‫garis itu karena begitu baris berubah, setiap baris setelah itu sekarang harus dibangun kembali juga.
‫Ini memunculkan poin tentang pemesanan baris Anda di Dockerfile Anda. Karena, jika Anda mendapatkan sesuatu yang tidak
‫beres, misalnya, jika
‫Anda menyalin kode di ... katakanlah Anda sedang membangun sebuah situs web. Jika Anda menyalin kode
‫perangkat lunak yang Anda buat di awal file, maka setiap kali Anda mengubah file sumber
‫dan Anda membangun kembali, itu harus membangun seluruh Dockerfile lagi.
‫Jadi itu sangat penting untuk kewarasan dan waktu Anda bahwa Anda biasanya menyimpan hal-hal di atas Dockerfile
‫Anda yang paling sedikit berubah dan kemudian hal-hal yang paling berubah di bagian bawah Dockerfile
‫Anda.