Golang aplikacija za pokretanje kao Docker spremnik

Golang Aplikacija Za Pokretanje Kao Docker Spremnik



U ovom tutorijalu naučit ćemo osnove kontejneriziranja postavljanjem Golang aplikacije da radi kao Docker spremnik. Naučit ćemo kako raditi s Dockerfileom da bismo konfigurirali sve zahtjeve za našu aplikaciju.

Go je statički tipiziran i kompilirani programski jezik otvorenog koda koji je poznat po svojoj sposobnosti da olakša razvoj jednostavnog, pouzdanog i vrlo učinkovitog softvera. Uslužni program pronalazi u izradi različitih aplikacija uključujući web aplikacije, izvorna rješenja u oblaku, sučelja naredbenog retka (CLI), a intrigantno je da je čak i sam Docker izrađen pomoću Goa.

U našem slučaju gradimo jednostavan HTTP poslužitelj u Gou koji nam omogućuje da demonstriramo kako izgraditi i Dockerizirati aplikaciju u jednostavnim koracima.







Zahtjevi:

Kako biste pratili ovaj vodič, potrebni su vam sljedeći alati:



  1. Instalirani Go kompajler (potrebna je verzija 1.21 i novija)
  2. Pokretanje Docker Enginea na vašem glavnom računalu
  3. IDE ili uređivač teksta za uređivanje Go aplikacije. Preporučujemo korištenje Visual Studio ili Vim
  4. Tumač naredbenog retka kao što su Bash, ZSH, PowerShell itd.

Uz ispunjenje zadanih zahtjeva, nastavimo i naučimo kako izraditi aplikaciju.



Izrada aplikacije

Sljedeći korak je izrada naše aplikacije. U našem slučaju gradimo jednostavan HTTP poslužitelj koji odgovara jednostavnom porukom.





Započnite stvaranjem direktorija za pohranjivanje Go projekta. Možete dati bilo koje prikladno ime.

$ mkdir go_poslužitelj

Idite u direktorij i kreirajte novu datoteku za pohranu izvornog koda. U našem slučaju zovemo datoteku 'main.go' što označava da je datoteka Go izvorni kod.



$ dodir glavni.krenuti

Na kraju uredite datoteku i dodajte izvorni kod aplikaciji kao što je prikazano u nastavku:

glavni paket

uvoz (
'fmt'
'net/http'
)

funkcija glavna ( ) {
// obraditi dolazne zahtjeve
http.HandleFunc ( '/' , funk ( U http.ResponseWriter, r * http.Zahtjev ) {
// Napišite odgovor klijentu
fmt.Fprintf ( U , 'Od Dockera (:' )
} )

// Pokrenite HTTP poslužitelj na priključku 8080
fmt.Println ( 'Poslužitelj radi na :8080' )
http.ListenAndServe ( ':8080' , nula )
}

Prethodna aplikacija stvara osnovni HTTP poslužitelj koji se veže na priključak 8080. Poslužitelj odgovara osnovnom porukom kako je prethodno definirano.

Testiranje aplikacije

Prije nego što dockeriziramo aplikaciju, provjerimo radi li aplikacija ispravno. Pokrenite sljedeću naredbu:

$ go run main.go

Prethodna naredba pokreće aplikaciju i vraća poruku kako slijedi:

Server radi na: 8080

Zatim, za testiranje HTTP poslužitelja, možete pokrenuti naredbu 'curl' na sljedeći način:

$ kovrča http: // lokalni domaćin: 8080 /

Prethodna naredba trebala bi vratiti poruku na sljedeći način:

Od Dockera ( : %

Sada možemo nastaviti i dokerizirati prethodnu aplikaciju kako je definirano u sljedećim koracima.

Kontejneriziranje aplikacije

Sljedeći korak je raspravljanje o tome kako izgraditi spremnik za aplikaciju. Počinjemo stvaranjem Dockerfilea u direktoriju projekta.

$ CD go_poslužitelj

Napravite datoteku pod nazivom Dockerfile bez ekstenzije i uredite datoteku pomoću uređivača teksta. Ova nam datoteka omogućuje definiranje svih zahtjeva za našu aplikaciju kako slijedi:

$ dodir Dockerfile
$ jer Dockerfile

Dodajte konfiguraciju na sljedeći način:

IZ golanga: 1.21

RADNI DIR / aplikacija

KOPIRAJ . .

RUN go build main.go -O glavni .

IZLOŽITI 8080

CMD [ './glavni' ]

U prethodnoj Docker datoteci definiramo prethodne operacije za aplikaciju.

  • Postavite osnovnu sliku na službenu Golang sliku verziju 1.21.
  • Konfigurirajte radni direktorij unutar spremnika na “/app”.
  • Kopiramo cijeli direktorij projekta u spremnik.
  • Izgradite Go aplikaciju unutar spremnika.
  • Izložite priključak 8080 kako biste dopustili dolazni HTTP promet.
  • Postavite naredbu za pokretanje Go aplikacije.

Izrada Docker slike

Za izradu slike za aplikaciju, otvorite terminal i dođite do direktorija projekta. Zatim pokrenite sljedeću naredbu za izradu slike:

$ sudo docker build -t go_server_docker.

Zamijenite go_server_docker nazivom koji želite dodijeliti slici aplikacije.

Nakon uspješne izgradnje Docker slike, možete pokrenuti spremnik temeljen na toj slici sljedećom naredbom:

$ docker run -str 8080 : 8080 go_server_docker

Prethodna naredba trebala bi mapirati port 8080 s glavnog računala na port 8080 unutar spremnika.

Za testiranje spremnika pokrenite sljedeću naredbu:

$ kovrča http: // lokalni domaćin: 8080

Ovo bi trebalo ispisati poruku koja je definirana u aplikaciji.

Zaključak

U ovom vodiču naučili smo kako izraditi osnovnu Go aplikaciju. Također smo naučili kako kontejnerizirati aplikaciju definiranjem zahtjeva u Dockerfileu, izgradnjom slike iz spremnika i pokretanjem spremnika iz slike.