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:
- Pengkompil Go yang dipasang (versi 1.21 dan ke atas diperlukan)
- Menjalankan Enjin Docker pada mesin hos anda
- IDE atau editor teks untuk mengedit aplikasi Go. Kami mengesyorkan menggunakan Visual Studio atau Vim
- 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_serverNavigasi 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 utamaimport (
'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.goPerintah sebelumnya memulakan aplikasi dan mengembalikan mesej seperti berikut:
Pelayan sedang berjalan: 8080Seterusnya, 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_serverCipta 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.21WORKDIR / 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_dockerPerintah sebelumnya harus memetakan port 8080 dari mesin hos ke port 8080 di dalam bekas.
Untuk menguji bekas, jalankan arahan berikut:
$ keriting http: // localhost: 8080Ini 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.