Aplikacija Golang za izvajanje kot vsebnik Docker

Aplikacija Golang Za Izvajanje Kot Vsebnik Docker



V tej vadnici se bomo naučili osnov kontejneriziranja z nastavitvijo aplikacije Golang za izvajanje kot vsebnik Docker. Naučili se bomo, kako delati z datoteko Dockerfile za konfiguracijo vseh zahtev za našo aplikacijo.

Go je odprtokodni, statično tipkan in preveden programski jezik, ki je znan po svoji zmožnosti olajšanja razvoja preproste, zanesljive in zelo učinkovite programske opreme. Pripomoček najde pri izdelavi različnih aplikacij, vključno s spletnimi aplikacijami, izvornimi rešitvami v oblaku, vmesniki ukazne vrstice (CLI) in zanimivo je, da je celo sam Docker izdelan z Go.

V našem primeru zgradimo preprost strežnik HTTP v Go, ki nam omogoča, da pokažemo, kako zgraditi in Dockerizirati aplikacijo v preprostih korakih.







Zahteve:

Če želite slediti tej vadnici, potrebujete naslednja orodja:



  1. Nameščen prevajalnik Go (zahtevana je različica 1.21 in novejša)
  2. Zagon Docker Engine na vašem gostiteljskem računalniku
  3. IDE ali urejevalnik besedila za urejanje aplikacije Go. Priporočamo uporabo Visual Studio ali Vim
  4. Tolmač ukazne vrstice, kot je Bash, ZSH, PowerShell itd.

Ko so dane zahteve izpolnjene, nadaljujmo in se naučimo, kako zgraditi aplikacijo.



Gradnja aplikacije

Naslednji korak je izdelava naše aplikacije. V našem primeru zgradimo preprost strežnik HTTP, ki se odzove s preprostim sporočilom.





Začnite z ustvarjanjem imenika za shranjevanje projekta Go. Navedete lahko poljubno primerno ime.

$ mkdir go_server

Pomaknite se v imenik in ustvarite novo datoteko za shranjevanje izvorne kode. V našem primeru imenujemo datoteko »main.go«, kar označuje, da je datoteka izvorna koda Go.



$ dotik main.go

Na koncu uredite datoteko in aplikaciji dodajte izvorno kodo, kot je prikazano v naslednjem:

glavni paket

uvoz (
'fmt'
'net/http'
)

glavna funkcija ( ) {
// obravnavati dohodne zahteve
http.HandleFunc ( '/' , funk ( notri http.ResponseWriter, r * http.Zahteva ) {
// Napišite odgovor stranki
fmt.Fprintf ( notri , 'Iz Dockerja (:' )
} )

// Zaženite strežnik HTTP na vratih 8080
fmt.Println ( 'Strežnik deluje na :8080' )
http.ListenAndServe ( ':8080' , nič )
}

Prejšnja aplikacija ustvari osnovni strežnik HTTP, ki se veže na vrata 8080. Strežnik se odzove z osnovnim sporočilom, kot je bilo predhodno definirano.

Testiranje aplikacije

Preden aplikacijo dockeriziramo, se prepričajmo, da aplikacija pravilno deluje. Zaženite naslednji ukaz:

$ go run main.go

Prejšnji ukaz zažene aplikacijo in vrne naslednje sporočilo:

Strežnik deluje na: 8080

Nato lahko za preizkus strežnika HTTP zaženete ukaz 'curl' na naslednji način:

$ curl http: // lokalni gostitelj: 8080 /

Prejšnji ukaz bi moral vrniti sporočilo, kot sledi:

Od Dockerja ( : %

Zdaj lahko nadaljujemo in dockeriziramo prejšnjo aplikacijo, kot je opredeljeno v naslednjih korakih.

Vsebovanje aplikacije

Naslednji korak je razprava o tem, kako zgraditi vsebnik za aplikacijo. Začnemo z ustvarjanjem datoteke Dockerfile v imeniku projekta.

$ cd go_server

Ustvarite datoteko z imenom Dockerfile brez pripone in jo uredite z urejevalnikom besedil. Ta datoteka nam omogoča, da definiramo vse zahteve za našo aplikacijo, kot sledi:

$ dotik Dockerfile
$ Ker Dockerfile

Dodajte konfiguracijo na naslednji način:

IZ golanga: 1.21

DELOVNI DIR / aplikacija

KOPIRATI . .

RUN go build main.go -O glavni .

IZPOSTITE 8080

CMD [ './glavni' ]

V prejšnji datoteki Dockerfile definiramo prejšnje operacije za aplikacijo.

  • Nastavite osnovno sliko na uradno različico slike Golang 1.21.
  • Konfigurirajte delovni imenik znotraj vsebnika na »/app«.
  • V vsebnik kopiramo celoten imenik projekta.
  • Zgradite aplikacijo Go znotraj vsebnika.
  • Izpostavite vrata 8080, da omogočite dohodni promet HTTP.
  • Nastavite ukaz za zagon aplikacije Go.

Gradnja slike Docker

Če želite zgraditi sliko za aplikacijo, odprite terminal in se pomaknite do imenika projekta. Nato zaženite naslednji ukaz za izdelavo slike:

$ sudo gradnjo dockerja -t go_server_docker.

Zamenjajte go_server_docker z imenom, ki ga želite dodeliti sliki aplikacije.

Ko uspešno zgradite sliko Docker, lahko zaženete vsebnik, ki temelji na tej sliki, z naslednjim ukazom:

$ docker run -str 8080 : 8080 go_server_docker

Prejšnji ukaz bi moral preslikati vrata 8080 iz gostiteljskega računalnika v vrata 8080 znotraj vsebnika.

Če želite preizkusiti vsebnik, zaženite naslednji ukaz:

$ curl http: // lokalni gostitelj: 8080

To bi moralo natisniti sporočilo, ki je definirano v aplikaciji.

Zaključek

V tej vadnici smo se naučili ustvariti osnovno aplikacijo Go. Naučili smo se tudi, kako aplikacijo pretvoriti v vsebnike, tako da definiramo zahteve v datoteki Dockerfile, zgradimo sliko iz vsebnika in zaženemo vsebnik iz slike.