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:
- Nameščen prevajalnik Go (zahtevana je različica 1.21 in novejša)
- Zagon Docker Engine na vašem gostiteljskem računalniku
- IDE ali urejevalnik besedila za urejanje aplikacije Go. Priporočamo uporabo Visual Studio ali Vim
- 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_serverPomaknite 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 paketuvoz (
'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.goPrejšnji ukaz zažene aplikacijo in vrne naslednje sporočilo:
Strežnik deluje na: 8080Nato 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_serverUstvarite 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.21DELOVNI 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_dockerPrejš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: 8080To 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.