‫Baiklah. Mari kita lihat beberapa contoh Dockerfile lainnya.
‫Dalam repositori kami yang telah Anda unduh dari Github saya, mari masuk ke nomor sampel Dockerfile 2.
‫Kali ini, kami sebenarnya memiliki dua file.
‫Kami memiliki Dockerfile. Dan sekarang kami memiliki indeks. html.
‫Sangat sederhana. Halo Dunia. HTML.
‫Tidak terlalu penting untuk memahami HTML.
‫Kami hanya akan menyalinnya ke gambar wadah kami saat kami sedang membangunnya.
‫Jika kita melihat Dockerfile, Anda akan melihat ini bahwa kita sebenarnya menggunakan Nginx sebagai perintah FROM
‫kami.
‫Kami tidak membangun Nginx kami sendiri karena idealnya, jika Anda dapat menggunakan gambar resmi untuk menyelesaikan
‫pekerjaan dari Docker Hub, maka akan jauh lebih mudah bagi Anda untuk mempertahankan Dockerfile ini dan membuatnya
‫bekerja dengan baik.
‫Dalam skenario yang lebih sederhana, cukup sering gambar resmi berfungsi. Tetapi ketika Anda tumbuh dan menambahkan kompleksitas
‫ke lingkungan dan sistem Anda, Anda mungkin akan menemukan bahwa Anda perlu menambahkan perangkat
‫lunak khusus, atau mengubah cara memulai, atau menambahkan skrip sehingga tweak konfigurasi.
‫Tetapi ketika saya memulai proyek greenfield baru, atau jika saya mengonversi beberapa aplikasi lama, saya selalu memulai
‫dengan gambar resmi dari Docker Hub. Kemudian setelah saya menabrak beberapa hambatan dan saya tidak dapat
‫menggunakan gambar itu lagi, saya mungkin kembali ke Docker Hub dan melihat lagi dan melihat apakah ada sesuatu yang ada
‫di luar sana yang benar-benar populer, yang dapat saya percayai, dan lihat ke dalam dan lihat apakah itu akan menyelesaikan masalah saya.
‫Tetapi tidak ada yang salah dengan membangun rumah Anda sendiri.
‫Hanya saja lebih banyak pekerjaan dan lebih banyak pemeliharaan dari waktu ke waktu.
‫Jadi di sini sangat sederhana. Kami punya tiga bait.
‫Anda telah melihat DARI sebelumnya. Dan kali ini kita memiliki WORKDIR.
‫Nah, itu pada dasarnya hanya menjalankan perubahan direktori ruang cd. Jadi, Anda mungkin tergoda untuk menggunakan perintah jalankan dan cukup ketik
‫jalankan cd ke direktori ini dan kemudian lakukan beberapa hal. Tetapi sebenarnya praktik terbaik untuk
‫Dockerfiles adalah selalu menggunakan bait WORKDIR terpisah untuk setiap kali Anda mengubah direktori.
‫Jadi jika file Anda menjadi sedikit rumit dan Anda harus bergerak bolak-balik dalam wadah Anda
‫untuk melakukan hal-hal saat sedang membangun, Anda selalu ingin menggunakan WORKDIR karena jauh lebih mudah untuk menggambarkan di Dockerfile
‫apa yang Anda lakukan.
‫Dalam hal ini, apa yang sebenarnya kami lakukan di sini adalah kami mengubah ke direktori
‫Nginx default untuk file HTML-nya.
‫Dalam konfigurasi default pada Docker Hub, Nginx bertindak hanya sebagai server web, dan itu hanya
‫melayani file statis langsung dari disk kontainer.
‫Bait terakhir di sini, yang kita miliki, adalah salinannya. Dan ini adalah bait yang akan selalu Anda gunakan
‫untuk menyalin kode sumber Anda dari mesin lokal Anda, atau server build Anda, ke dalam gambar kontainer Anda.
‫Dalam hal ini, kami hanya mengambil indeks sederhana kami. html dan kami menimpa file di
‫direktori default Nginx sehingga merupakan halaman beranda khusus kami untuk server web.
‫Sebelum kami membuat ini, Anda akan melihat bahwa kami kehilangan bait yang diperlukan, seperti cmd.
‫Jadi bagaimana kita bisa lolos dari itu?
‫Nah, sudah ada cmd yang ditentukan dalam gambar FROM.
‫Dan ketika kita menggunakan FROM, kita mewarisi semuanya dari Dockerfile yang kita 'asal', jika itu hanya sebuah kata.
‫Ini adalah bagaimana Anda dapat menghubungkan Dockerfiles bersama-sama sehingga gambar tergantung pada gambar lain
‫yang tergantung pada gambar lain.
‫Baiklah. Mari kita lihat bagaimana ini bekerja.
‫Sebelum kita membangun ini, mari kita segera mengingatkan diri kita sendiri apa yang dilakukan oleh server Nginx default.
‫Mari kita lakukan menjalankan docker container cepat -p 8080, dan kita tidak akan membutuhkan ini terlalu lama sehingga kita akan melakukan --rm sehingga
‫akan terhapus saat berhenti. Kami tidak peduli dengan namanya. Kami
‫hanya akan menjalankan Nginx. Jika kita masuk ke browser dan mengetik saja localhost, kita
‫akan melihat halaman indeks Nginx default.
‫BAIK.
‫Mari kita ingat itu, dan kemudian mari kita tinggalkan saja wadah ini dan kita
‫sekarang akan membangun versi Nginx kita dengan file kode sumber tambahan kita.
‫BAIK.
‫Yang ini benar-benar harus berjalan sangat cepat.
‫Anda perhatikan hanya butuh beberapa detik. Itu karena kami sudah memiliki Nginx di cache gambar kami. Dan semua yang
‫dijalankannya adalah menyalin file yang sangat kecil dan mengubah direktori kerja.
‫Sekarang mari kita jalankan perintah yang tepat yang baru saja kita jalankan untuk Nginx. Hanya saja kali ini, kita akan
‫menggunakan gambar baru yang baru saja kita buat ini.
‫Beralihlah ke browser kami, dan segarkan, dan bagus.
‫HTML indeks kustom kami berjalan di sana dan wadah kami berfungsi.
‫Jika kita melakukan gambar cepat ls, kita dapat melihat gambar terbaru kami di atas sana.
‫Jika kami benar-benar ingin mengirim ini ke Docker Hub, ini berfungsi dengan cara yang sama seperti yang kami lakukan sebelumnya.
‫Kami hanya perlu memberi tag ulang. Jadi kita bisa melakukan tag gambar buruh pelabuhan.
‫Jika Anda ingat perintah bantuan, kita dapat melihat formatnya dan selalu yang kami
‫beri tag dan tag yang kami inginkan lalu dipanggil. Jadi docker tag gambar nginx dengan html terbaru.
‫Dan kemudian saya harus menyebutnya bretfisher ... seperti itu.
‫Kemudian jika saya membuat gambar buruh pelabuhan lagi, Anda akan melihat dua baris teratas adalah ID gambar yang sama lagi
‫dan hanya ditandai berbeda.
‫Sekarang saya bisa melakukan push docker dengan repositori dan tag itu, dan saya bisa mendapatkannya di Docker Hub.