- Pastikan sudah mendownload framework gin dengan instruksi:
- go get -u github.com/gin-gonic/gin
- Buat sebuah folder proyek dan buat file main.go dengan syntax seperti berikut:
- Setelah dibuat file main.go, jalankan instruksi berikut
- go mod init <nama_project>, untuk membuat file go.mod yang berisi informasi library pada proyek.
- go mod tidy, untuk link dengan library gin yang digunakan pada file main.go
- Kemudian test aplikasi dengan perintah go run main.go
- Lalu buka browser dan masukkan url: http://localhost:3000/ping untuk
- memastikan web server telah berjalan.
- Keluarannya adalah halaman web seperti pada gambar berikut:
Membuat Dockerfile
- Selanjutnya, buat sebuah file Dockerfile yang berisi langkah-langkah konfigurasi untuk membuat sebuah docker image. Syntaks nya adalah sebagai berikut:
- Setelah membuat file Dockerfile di dalam folder proyek, pada OS Windows, pastikan aplikasi Docker Desktop telah di jalankan.
- Lalu jalankan perintah berikut untuk membuat docker image: docker build –t go-dock .
- Lalu jalankan perintah docker images untuk melihat image go-dock yang telah dibuat.
Menguji Docker Image
- Jalankan instruksi docker run –p 3000:3000 go-dock untuk menjalankan image aplikasi GoLang yang telah dibuat. Lalu gunakan browser untuk mengakses url: http://localhost:3000/ping. Keluarannya akan menjadi seperti pada halaman berikut:
- Jika keluar tampilan seperti di atas, berarti docker image untuk aplikasi GoLang telah berhasil di buat.
- Perhatikan gambar berikut:
- Terlihat bahwa ukuran image yang dihasilkan adalah sebesar 456MB. Hal ini karena images yang dibuat turut memasukkan artefak atau footprint proses kompilasi GoLang.
- Docker image juga dikenal dengan kemampuannya untuk menghasilkan image dengan ukuran yang kecil.
- Sehingga ukuran image dari aplikasi sebelumnya terhitung masih cukup besar.
- Untuk mengoptimalkan ukuran image, Docker menyediakan fitur multi-stage builds.
- Dengan fitur multi-stage, kita dapat membuat image yang melalui lebih dari satu tahap (umumnya dua tahap).
- Tahap pertama untuk build dan instalasi aplikasi
- Tahap kedua untuk menghilangkan footprint atau artefak yang tidak diperlukan
- Untuk mengaktifkan fitur Multi-Stage, cukup menggunakan banyak statement FROM di dalam file Dockerfile.
- Setiap statement FROM bisa memiliki base yang berbeda dan masing-masing FROM menandakan sebuat stage yang baru dalam proses build.
- Sebagai contoh, modifikasi file Dockerfile sebelumnya dengan mengganti sintaks menjadi seperti pada gambar:
Fitur Multi-Stage Docker
- Lalu build kembali image docker dengan perintah: docker build –t go-dock . Setelah itu, jalankan kembali instruksi docker images dan hasilnya adalah seperti pada gambar berikut:
- Terlihat bahwa image go-dock yang terbaru, memiliki ukuran yang lebih kecil (sekitar 10MB).
- Bila perintah docker run –p 3000:3000 go-dock kembali di jalankan, aplikasi tetap dapat berjalan seperti yang seharusnya.