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

instagram viewer
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.