Opi käyttämään Dockeria Go-sovellusten tehokkaaseen pakkaamiseen ja käyttöönottoon, jolloin niistä tulee kannettavia ja helppoja hallita.
Docker on suosituin konttitekniikka yksinkertaisuutensa ja helppokäyttöisyytensä ansiosta. Docker lievittää siirrettävyysongelmien aiheuttamaa stressiä ohjelmistokehityksessä ja -jakelussa. Voit ottaa telakointisäiliöt käyttöön useimmille pilvipalveluntarjoajille.
Go-sovellusten säilyttäminen Dockerin kanssa voi auttaa varmistamaan johdonmukaisen ja luotettavan käyttöönoton eri ympäristöissä. Voit ottaa Go-sovelluksesi käyttöön erilaisissa ympäristöissä, kuten kehitys-, vaiheistus- ja tuotantoympäristöissä. Docker-säiliöt ovat kevyitä ja vievät vähemmän tilaa kuin perinteiset virtuaalikoneet. Tämä voi säästää rahaa isännöintikuluissa, ja se voi myös nopeuttaa käyttöönottoa.
Yksinkertaisen verkkopalvelimen määrittäminen Goissa
Go-standardikirjasto sisältää paketit, joita tarvitset yksinkertaisen verkkopalvelimen määrittämiseen.
Tuo ensin http, Hirsi, ja json
paketteja. käytät Go: n http-paketti palvelimen määrittämiseen ja SAADA pyytää päätepistettä. The Hirsi paketti mahdollisten virheiden kirjaamiseen konsoliisi. The json-paketti rakenteen koodaamiseksi JSONiksi API-päätepisteelle.tuonti (
"koodaus/json"
"Hirsi"
"net/http"
)
Voit koodata rakenneilmentymän JSON-muodossa asiakkaalle vastauksena pyynnön kelvollisuuden perusteella seuraavasti:
tyyppi Viesti struct {
Vastaus merkkijono`json:"vastaus"`
Kuvaus merkkijono`json:"description"`
}
Käsittelijätoiminto palauttaisi onnistuneen viestin asiakkaalle, jos pyyntö päätepisteelle on a SAADA pyyntö.
// dockerTestEndpoint käsittelee API-päätepistettä Docker-yhteyden testaamiseksi
funcdockerTestEndpoint(kirjoittaja http. ResponseWriter, pyydä *http. Pyyntö) {// Aseta vastauksen otsikko ilmaisemaan JSON-sisältöä
kirjailija. Header().Set("Sisältötyyppi,""sovellus/json")// Jos pyyntömenetelmä on GET
jos pyyntö. Menetelmä == "SAADA" {// Aseta vastauksen tilakoodiksi 200 OK
kirjailija. WriteHeader (http. Tila OK)// Luo viestirakenne onnistuneelle vastaukselle
viesti := Viesti{
Vastaus: "Onnistui",
Kuvaus: "Olet onnistuneesti osunut API-päätepisteeseen" +
"Docker Containeristasi",
}
// Koodaa viesti JSON-muodossa ja lähetä se vastauksena
virhe := json. NewEncoder (kirjoittaja). Koodaa (&viesti)
jos virhe! = nolla {
palata
}
} muu {// Jos pyyntömenetelmä ei ole GET
// Aseta vastauksen tilakoodiksi 400 Bad Request
kirjailija. WriteHeader (http. StatusBadRequest)// Luo viestirakenne huonolle pyyntövastaukselle
viesti := Viesti{
Vastaus: "Huono pyyntö",
Kuvaus: "Olet onnistuneesti osunut API-päätepisteeseen +
"Docker Container, mutta teit huonon pyynnön",
}
// Koodaa viesti JSON-muodossa ja lähetä se vastauksena
virhe := json. NewEncoder (kirjoittaja). Koodaa (&viesti)
jos virhe! = nolla {
palata
}
}
}
Asetat käsittelijän toiminnon päätoiminnossa reitillä as /api/docker/go. The dockerTestEndpoint Käsittelijätoiminto vahvistaa, että käsittelijälle lähetetty pyyntö on GET-pyyntö. Jos se on GET-pyyntö, se koodaa instantioidun pyynnön Viesti struct ilmentymä asiakkaalle pyynnön tilan perusteella.
Näin voit asentaa käsittelijän toiminnon reitille ja määrittää palvelimen toimimaan portissa 8080:
funcpää() {
// Rekisteröi käsittelijäfunktio 'dockerTestEndpoint'
// käsittelemään "/api/docker/go"-URL-osoitteen pyyntöjä.
http. HandleFunc("/api/docker/go", dockerTestEndpoint)
// Käynnistä HTTP-palvelin ja kuuntele portin 8080 saapuvia pyyntöjä.
virhe := http. ListenAndServe(":8080", nolla)
jos virhe! = nolla {
Hirsi. Fatalln("Palvelimessa on virhe:", virhe)
}
}
The pää toiminto on palvelimen sisääntulopiste, joka kuuntelee porttia 8080. The HandleFunc menetelmä liittää reitit käsittelijätoimintoon. The KuunteleJaPalvele menetelmä käynnistää palvelimen määritetyssä paikallisessa isäntäportissa 8080.
Aloitusopas Go-sovellusten säilyttäminen Dockerin avulla
Kun olet asentanut ja määrittänyt Dockerin, tarvitset Docker-tiedoston nimeltä Dockerfile Docker-kuvan luomiseen ja rakentamiseen Go-sovelluksellesi. Määrität komennot peruskuvalle ja komennot tiedostojen kopioimiseksi, työhakemiston lisäämiseksi ja sovelluksen suorittamiseksi Dockerfile-tiedostossa.
Luo Docker-tiedosto suorittamalla tämä komento työtilasi päätteessä.
kosketa Docker-tiedostoa
Määrität Docker-kuvan rakentamiskomennot Docker-tiedostossa.
Jos haluat erottaa Docker-kuvastasi tiedostoja, voit käyttää a .dockerignore tiedosto. The .dockerignore tiedostot toimivat aivan kuten .gitignore tiedostot.
kosketa .dockerignore
Seuraavaksi määrität Dockerfile-tiedostoon rakennuskomennot sovellusten säilyttämiseksi.
Komentojen määrittäminen Docker-tiedostossa
Docker-tiedostot ovat muokattavissa projektisi määritysten perusteella. Määrität komennot peruskuvan rakentamiseksi sovelluksen rakentamista varten.
Tässä on esimerkki yllä olevan verkkopalvelimen rakentavan Docker-tiedoston sisällöstä:
# Käytä Golang-peruskuvaa
FROM golang: uusin# Aseta työhakemisto säilön sisällä
TYÖOHJ /app# Kopioi kaikki paikallisen hakemiston tiedostot säilön työhakemistoon
KOPIO. .# Lataa Go-moduulin riippuvuudet
JUOSTA lataa mod# Rakenna Go-sovellus
JUOSTA mene rakentamaan -o sovellus
# Aseta sovelluksen aloituspiste
SISÄÄNTULOPISTE ["./sovellus"]
Dockerfile käyttää golang: uusin peruskuva, sovelluksen rakentamiseen sen jälkeen, kun työhakemisto on asetettu /app.
Dockerfile kopioi tiedostot KOPIO komento ja lataa riippuvuudet JUOSTA komento.
Tiedosto määrittää build and run -toiminnon kanssa JUOSTA -komennon ja asettaa sitten komennon suorittamaan, kun säilö alkaa CMD komento.
Tallenna Docker-tiedosto samaan hakemistoon go.mod ja main.go tiedostot; suorita sitten tämä komento luodaksesi Docker-kuvan tästä Docker-tiedostosta:
docker build -t GolangTutorial .
Yllä oleva komento luo Docker-kuvan tunnisteella golangtutorial. Voit ajaa säilön tällä komennolla:
docker run -p 8080:8080 golangtutorial
Komento yhdistää portin 8080 säiliöstä isäntäkoneen paikallispalvelimen porttiin 8080. Voit pyytää Docker-säilön palvelinta isäntäkoneelta.
Tässä tulos kohteesta lähettää CURL-pyynnön palvelimelle, tällä kertaa käynnissä Dockerissa:
Voit käyttää Docker Composea säilön orkestrointiin
Docker Compose on työkalu, jolla voit orkestroida (työskennellä useiden) Docker-säiliöiden kanssa. Docker Compose antaa sinun määrittää monisäilösovelluksen yhteen YAML-tiedostoon. Voit käyttää ja hallita koko sovellusta yhdellä komennolla.
Voit käyttää Docker Composea monimutkaisten konttisovellusten käyttöönottoon ja hallintaan. Docker Compose yksinkertaistaa hallintaa automatisoiduilla ja johdonmukaisilla käyttöönotoilla.