Aplikasi Golang untuk Dijalankan sebagai Kontainer Docker

Aplikasi Golang Untuk Dijalankan Sebagai Kontainer Docker



Dalam tutorial ini, kita akan mempelajari dasar-dasar containerizing dengan menyiapkan aplikasi Golang untuk dijalankan sebagai container Docker. Kita akan mempelajari cara bekerja dengan Dockerfile untuk mengonfigurasi semua persyaratan aplikasi kita.

Go adalah bahasa pemrograman sumber terbuka, diketik secara statis, dan dikompilasi yang terkenal karena kemampuannya memfasilitasi pengembangan perangkat lunak yang sederhana, andal, dan sangat efisien. Ia menemukan kegunaannya dalam membuat beragam aplikasi termasuk aplikasi web, solusi cloud-native, antarmuka baris perintah (CLI), dan yang menarik, bahkan Docker sendiri dibuat menggunakan Go.

Dalam kasus kami, kami membangun server HTTP sederhana di Go yang memungkinkan kami mendemonstrasikan cara membangun dan melakukan Dockerisasi aplikasi dalam langkah-langkah sederhana.







Persyaratan:

Untuk mengikuti tutorial ini, Anda memerlukan alat berikut:



  1. Kompiler Go yang diinstal (diperlukan versi 1.21 dan lebih tinggi)
  2. Menjalankan Docker Engine di mesin host Anda
  3. IDE atau editor teks untuk mengedit aplikasi Go. Kami merekomendasikan menggunakan Visual Studio atau Vim
  4. Penerjemah baris perintah seperti Bash, ZSH, PowerShell, dll.

Setelah persyaratan yang diberikan terpenuhi, mari kita lanjutkan dan pelajari cara membangun aplikasi.



Membangun Aplikasi

Langkah selanjutnya adalah membangun aplikasi kita. Dalam kasus kami, kami membangun server HTTP sederhana yang merespons dengan pesan sederhana.





Mulailah dengan membuat direktori untuk menyimpan proyek Go. Anda dapat memberikan nama apa pun yang cocok.

$ mkdir go_server

Arahkan ke direktori dan buat file baru untuk menyimpan kode sumber. Dalam kasus kami, kami memanggil file “main.go” yang menunjukkan bahwa file tersebut adalah kode sumber Go.



$ menyentuh utama.pergi

Terakhir, edit file dan tambahkan kode sumber ke aplikasi seperti yang ditunjukkan berikut ini:

paket utama

impor (
'fmt'
'bersih/http'
)

fungsi utama ( ) {
// menangani permintaan masuk
http.HandleFunc ( '/' , fungsi ( Di dalam http.ResponseWriter, r * http.Permintaan ) {
// Tulis tanggapan kepada klien
fmt.Fprintf ( Di dalam , 'Dari Docker (:' )
} )

// Mulai server HTTP pada port 8080
fmt.Println ( 'Server berjalan pada :8080' )
http.ListenAndServe ( ':8080' , nihil )
}

Aplikasi sebelumnya membuat server HTTP dasar yang mengikat port 8080. Server merespons dengan pesan dasar seperti yang ditentukan sebelumnya.

Menguji Aplikasi

Sebelum kita melakukan docker pada aplikasi, mari kita pastikan bahwa aplikasi tersebut berfungsi dengan baik. Jalankan perintah berikut:

$ ayo jalankan main.go

Perintah sebelumnya memulai aplikasi dan mengembalikan pesan sebagai berikut:

Server sedang berjalan pada: 8080

Selanjutnya untuk menguji server HTTP, Anda dapat menjalankan perintah “curl” sebagai berikut:

$ keriting http: // host lokal: 8080 /

Perintah sebelumnya akan mengembalikan pesan sebagai berikut:

Dari Docker ( : %

Sekarang kita dapat melanjutkan dan melakukan docker pada aplikasi sebelumnya seperti yang ditentukan pada langkah berikutnya.

Kontainerisasi Aplikasi

Langkah selanjutnya adalah membahas bagaimana membangun sebuah container untuk aplikasi tersebut. Kita mulai dengan membuat Dockerfile di direktori proyek.

$ CD go_server

Buat file bernama Dockerfile tanpa ekstensi apa pun dan edit file dengan editor teks. File ini memungkinkan kita untuk mendefinisikan semua persyaratan untuk aplikasi kita sebagai berikut:

$ menyentuh file buruh pelabuhan
$ Karena file buruh pelabuhan

Tambahkan konfigurasi sebagai berikut:

DARI golang: 1.21

KERJADIR / aplikasi

SALINAN. .

JALANKAN go build main.go -HAI utama .

MEMBUKA 8080

CMD [ './utama' ]

Di Dockerfile sebelumnya, kami mendefinisikan operasi aplikasi sebelumnya.

  • Atur gambar dasar ke gambar resmi Golang versi 1.21.
  • Konfigurasikan direktori kerja di dalam wadah ke “/app”.
  • Kami menyalin seluruh direktori proyek ke dalam wadah.
  • Bangun aplikasi Go di dalam container.
  • Buka port 8080 untuk mengizinkan lalu lintas HTTP masuk.
  • Atur perintah untuk menjalankan aplikasi Go.

Membangun Gambar Docker

Untuk membuat image aplikasi, buka terminal dan navigasikan ke direktori proyek. Selanjutnya, jalankan perintah berikut untuk membuat image:

$ sudo membangun buruh pelabuhan -T go_server_docker .

Ganti go_server_docker dengan nama yang ingin Anda berikan pada gambar aplikasi.

Setelah berhasil membuat image Docker, Anda dapat menjalankan container berdasarkan image tersebut dengan perintah berikut:

$ menjalankan buruh pelabuhan -P 8080 : 8080 go_server_docker

Perintah sebelumnya harus memetakan port 8080 dari mesin host ke port 8080 di dalam container.

Untuk menguji kontainer, jalankan perintah berikut:

$ keriting http: // host lokal: 8080

Ini harus mencetak pesan yang ditentukan dalam aplikasi.

Kesimpulan

Dalam tutorial ini, kita mempelajari cara membuat aplikasi Go dasar. Kami juga mempelajari cara memasukkan aplikasi ke dalam container dengan menentukan persyaratan di Dockerfile, membuat image dari container, dan menjalankan container dari image.