Golangi rakendus, mis töötab Dockeri konteinerina

Golangi Rakendus Mis Tootab Dockeri Konteinerina



Selles õpetuses õpime konteineristamise põhitõdesid, seadistades Golangi rakenduse, mis töötab Dockeri konteinerina. Õpime töötama Dockerfile'iga, et konfigureerida kõik meie rakendusele esitatavad nõuded.

Go on avatud lähtekoodiga, staatiliselt trükitud ja kompileeritud programmeerimiskeel, mis on tuntud oma võime poolest hõlbustada lihtsa, usaldusväärse ja väga tõhusa tarkvara arendamist. See leiab utiliidi mitmesuguste rakenduste, sealhulgas veebirakenduste, pilvepõhiste lahenduste, käsurea liideste (CLI-de) loomiseks, ja intrigeerivalt on isegi Docker ise loodud Go abil.

Meie puhul ehitame Go-s lihtsa HTTP-serveri, mis võimaldab meil näidata, kuidas rakendust lihtsate sammudega luua ja dokkida.







Nõuded:

Selle õpetuse järgimiseks vajate järgmisi tööriistu.



  1. Installitud Go kompilaator (vajalik versioon 1.21 ja uuem)
  2. Dockeri mootori käivitamine hostmasinas
  3. IDE või tekstiredaktor rakenduse Go redigeerimiseks. Soovitame kasutada Visual Studio või Vimi
  4. Käsurea tõlk, nagu Bash, ZSH, PowerShell jne.

Kui etteantud nõuded on täidetud, jätkame ja õpime rakendust koostama.



Rakenduse loomine

Järgmine samm on meie rakenduse loomine. Meie puhul ehitame lihtsa HTTP-serveri, mis vastab lihtsa sõnumiga.





Alustage Go-projekti salvestamiseks kataloogi loomisega. Võite anda mis tahes sobiva nime.

$ mkdir go_server

Liikuge kataloogi ja looge lähtekoodi salvestamiseks uus fail. Meie puhul nimetame faili main.go, mis näitab, et fail on Go lähtekood.



$ puudutada main.go

Lõpuks redigeerige faili ja lisage rakendusele lähtekood, nagu on näidatud järgmises:

pakett peamine

importida (
'fmt'
'net/http'
)

func main ( ) {
// saabuvate päringute käsitlemine
http.HandleFunc ( '/' , func ( sisse http.ResponseWriter, r * http.Taotlus ) {
// Kirjutage kliendile vastus
fmt.Fprintf ( sisse , 'Dockerist (:' )
} )

// Käivitage HTTP-server pordis 8080
fmt.Println ( 'Server töötab :8080' )
http.ListenAndServe ( ':8080' , null )
}

Eelmine rakendus loob põhilise HTTP-serveri, mis seostub pordiga 8080. Server vastab põhisõnumiga, nagu eelnevalt määratletud.

Rakenduse testimine

Enne rakenduse dokkimist veenduge, et rakendus töötab korralikult. Käivitage järgmine käsk:

$ mine jooksma main.go

Eelmine käsk käivitab rakenduse ja tagastab teate järgmiselt:

Server töötab: 8080

Järgmisena saate HTTP-serveri testimiseks käivitada käsu 'curl' järgmiselt:

$ lokk http: // localhost: 8080 /

Eelmine käsk peaks tagastama sõnumi järgmiselt:

Dockerist ( : %

Nüüd saame jätkata ja dokkida eelmise rakenduse, nagu on määratletud järgmistes sammudes.

Rakenduse konteinerisse paigutamine

Järgmisena arutatakse, kuidas rakenduse jaoks konteinerit ehitada. Alustame Dockerfile'i loomisega projekti kataloogis.

$ cd go_server

Looge fail nimega Dockerfile ilma laiendita ja redigeerige faili tekstiredaktoriga. See fail võimaldab meil määratleda kõik meie rakendusele esitatavad nõuded järgmiselt.

$ puudutada Dockerfile
$ sest Dockerfile

Lisage konfiguratsioon järgmiselt:

golangist: 1.21

TÖÖDIREKTOR / rakendus

KOPERI . .

RUN go build main.go -O peamine .

AVALDA 8080

CMD [ './main' ]

Eelmises Dockerfile'is määratleme rakenduse eelmised toimingud.

  • Määrake põhipildiks ametlik Golangi kujutise versioon 1.21.
  • Seadistage konteineris olev töökataloog väärtuseks „/app”.
  • Kopeerime kogu projekti kataloogi konteinerisse.
  • Ehitage rakendus Go konteinerisse.
  • Sissetuleva HTTP-liikluse lubamiseks avage port 8080.
  • Määrake käsk rakenduse Go käivitamiseks.

Dockeri kujutise loomine

Rakenduse pildi koostamiseks avage terminal ja navigeerige projektikataloogi. Järgmisena käivitage pildi koostamiseks järgmine käsk:

$ sudo doki ehitamine -t go_server_doccker .

Asendage go_server_docker nimega, millele soovite rakenduse pildile määrata.

Pärast Dockeri kujutise edukat koostamist saate käivitada sellel pildil põhineva konteineri järgmise käsuga:

$ dokijooks -lk 8080 : 8080 go_server_doccker

Eelmine käsk peaks vastama hostmasina pordi 8080 konteineri sees olevale pordile 8080.

Konteineri testimiseks käivitage järgmine käsk:

$ lokk http: // localhost: 8080

See peaks printima rakenduses määratletud sõnumi.

Järeldus

Selles õpetuses õppisime põhilist Go rakendust looma. Samuti õppisime, kuidas rakendust konteinerisse paigutada, määratledes Dockerfile'is nõuded, ehitades konteinerist kujutise ja käivitades konteineri pildi põhjal.