Aplikasi Golang untuk Dijalankan sebagai Kontena Docker

Aplikasi Golang Untuk Dijalankan Sebagai Kontena Docker



Dalam tutorial ini, kita akan mempelajari asas-asas kontena dengan menyediakan aplikasi Golang untuk dijalankan sebagai bekas Docker. Kami akan belajar cara bekerja dengan Dockerfile untuk mengkonfigurasi semua keperluan untuk aplikasi kami.

Go ialah bahasa pengaturcaraan sumber terbuka, ditaip secara statik dan tersusun yang terkenal dengan keupayaannya untuk memudahkan pembangunan perisian yang mudah, boleh dipercayai dan sangat cekap. Ia mendapati utiliti dalam mencipta pelbagai aplikasi termasuk aplikasi web, penyelesaian asli awan, antara muka baris arahan (CLI), dan yang menarik, malah Docker sendiri dibuat menggunakan Go.

Dalam kes kami, kami membina pelayan HTTP mudah dalam Go yang membolehkan kami menunjukkan cara membina dan Dockerize aplikasi dalam langkah mudah.







Keperluan:

Untuk mengikuti tutorial ini, anda memerlukan alat berikut:



  1. Pengkompil Go yang dipasang (versi 1.21 dan ke atas diperlukan)
  2. Menjalankan Enjin Docker pada mesin hos anda
  3. IDE atau editor teks untuk mengedit aplikasi Go. Kami mengesyorkan menggunakan Visual Studio atau Vim
  4. Jurubahasa baris arahan seperti Bash, ZSH, PowerShell, dsb.

Dengan keperluan yang diberikan dipenuhi, marilah kita meneruskan dan belajar cara membina aplikasi.



Membina Aplikasi

Langkah seterusnya ialah membina aplikasi kami. Dalam kes kami, kami membina pelayan HTTP mudah yang bertindak balas dengan mesej ringkas.





Mulakan dengan mencipta direktori untuk menyimpan projek Go. Anda boleh memberikan sebarang nama yang sesuai.

$ mkdir go_server

Navigasi ke dalam direktori dan buat fail baharu untuk menyimpan kod sumber. Dalam kes kami, kami memanggil fail 'main.go' yang menandakan bahawa fail itu ialah kod sumber Go.



$ sentuh main.go

Akhir sekali, edit fail dan tambah kod sumber pada aplikasi seperti yang ditunjukkan dalam perkara berikut:

pakej utama

import (
'fmt'
'bersih/http'
)

fungsi utama ( ) {
// mengendalikan permintaan masuk
http.HandleFunc ( '/' , fungsi ( Dalam http.ResponseWriter, r * http.Permintaan ) {
// Tulis jawapan kepada klien
fmt.Fprintf ( Dalam , 'Dari Docker (:' )
} )

// Mulakan pelayan HTTP pada port 8080
fmt.Println ( 'Pelayan sedang berjalan pada :8080' )
http.ListenAndServe ( ':8080' , tiada )
}

Aplikasi sebelumnya mencipta pelayan HTTP asas yang mengikat ke port 8080. Pelayan bertindak balas dengan mesej asas seperti yang ditakrifkan sebelum ini.

Menguji Aplikasi

Sebelum kita melabuhkan aplikasi itu, mari kita pastikan apl itu berfungsi dengan betul. Jalankan arahan berikut:

$ pergi lari main.go

Perintah sebelumnya memulakan aplikasi dan mengembalikan mesej seperti berikut:

Pelayan sedang berjalan: 8080

Seterusnya, untuk menguji pelayan HTTP, anda boleh menjalankan arahan 'curl' seperti berikut:

$ keriting http: // localhost: 8080 /

Perintah sebelumnya harus mengembalikan mesej seperti berikut:

Daripada Docker ( : %

Kami kini boleh meneruskan dan melabuhkan aplikasi sebelumnya seperti yang ditakrifkan dalam langkah seterusnya.

Membekalkan Aplikasi

Langkah seterusnya ialah membincangkan cara membina bekas untuk aplikasi. Kita mulakan dengan mencipta Dockerfile dalam direktori projek.

$ cd go_server

Cipta fail bernama Dockerfile tanpa sebarang sambungan dan edit fail dengan editor teks. Fail ini membolehkan kami mentakrifkan semua keperluan untuk permohonan kami seperti berikut:

$ sentuh Dockerfile
$ kerana Dockerfile

Tambah konfigurasi seperti berikut:

DARI golang: 1.21

WORKDIR / aplikasi

SALINAN . .

LARI pergi bina main.go -O utama .

DEDAHKAN 8080

CMD [ './utama' ]

Dalam Dockerfile sebelumnya, kami mentakrifkan operasi sebelumnya untuk aplikasi.

  • Tetapkan imej asas kepada imej Golang rasmi versi 1.21.
  • Konfigurasikan direktori kerja di dalam bekas kepada '/app'.
  • Kami menyalin keseluruhan direktori projek ke dalam bekas.
  • Bina aplikasi Go di dalam bekas.
  • Dedahkan port 8080 untuk membenarkan trafik HTTP masuk.
  • Tetapkan arahan untuk menjalankan aplikasi Go.

Membina Imej Docker

Untuk membina imej untuk aplikasi, buka terminal dan navigasi ke direktori projek. Seterusnya, jalankan arahan berikut untuk membina imej:

$ sudo binaan buruh pelabuhan -t go_server_docker .

Gantikan go_server_docker dengan nama yang anda ingin berikan kepada imej apl.

Selepas berjaya membina imej Docker, anda boleh menjalankan bekas berdasarkan imej itu dengan arahan berikut:

$ lari berlabuh -hlm 8080 : 8080 go_server_docker

Perintah sebelumnya harus memetakan port 8080 dari mesin hos ke port 8080 di dalam bekas.

Untuk menguji bekas, jalankan arahan berikut:

$ keriting http: // localhost: 8080

Ini harus mencetak mesej yang ditakrifkan dalam aplikasi.

Kesimpulan

Dalam tutorial ini, kami belajar cara membuat aplikasi Go asas. Kami juga mempelajari cara untuk menyimpan aplikasi dengan mentakrifkan keperluan dalam Dockerfile, membina imej daripada bekas dan menjalankan bekas daripada imej.