Aplicația Golang să ruleze ca container Docker

Aplicatia Golang Sa Ruleze Ca Container Docker



În acest tutorial, vom învăța elementele de bază ale containerizării prin configurarea unei aplicații Golang pentru a rula ca container Docker. Vom învăța cum să lucrăm cu un Dockerfile pentru a configura toate cerințele pentru aplicația noastră.

Go este un limbaj de programare open-source, tipizat static și compilat, care este renumit pentru capacitatea sa de a facilita dezvoltarea unui software simplu, fiabil și extrem de eficient. Găsește utilitatea în crearea diverselor aplicații, inclusiv aplicații web, soluții native cloud, interfețe de linie de comandă (CLI) și, în mod intrigant, chiar și Docker însuși este creat folosind Go.

În cazul nostru, construim un server HTTP simplu în Go, care ne permite să demonstrăm cum să construim și să dockerizam aplicația în pași simpli.







Cerințe:

Pentru a urma acest tutorial, aveți nevoie de următoarele instrumente:



  1. Compilatorul Go instalat (este necesară versiunea 1.21 și mai sus)
  2. Rularea Docker Engine pe mașina dvs. gazdă
  3. Un IDE sau un editor de text pentru a edita aplicația Go. Vă recomandăm să utilizați Visual Studio sau Vim
  4. Un interpret de linie de comandă, cum ar fi Bash, ZSH, PowerShell etc.

Cu cerințele date îndeplinite, să continuăm și să învățăm cum să construim aplicația.



Construirea aplicației

Următorul pas este să construim aplicația noastră. În cazul nostru, construim un server HTTP simplu care răspunde cu un mesaj simplu.





Începeți prin a crea un director pentru a stoca proiectul Go. Puteți furniza orice nume potrivit.

$ mkdir go_server

Navigați în director și creați un fișier nou pentru a stoca codul sursă. În cazul nostru, numim fișierul „main.go” care indică faptul că fișierul este un cod sursă Go.



$ atingere principal.go

În cele din urmă, editați fișierul și adăugați codul sursă la aplicație, așa cum se arată în următoarele:

pachet principal

import (
'fmt'
'net/http'
)

func principal ( ) {
// gestionează cererile primite
http.HandleFunc ( '/' , func ( În http.ResponseWriter, r * http.Solicitare ) {
// Scrieți un răspuns clientului
fmt.Fprintf ( În , „Din Docker (:” )
} )

// Porniți serverul HTTP pe port 8080
fmt.Println ( „Serverul rulează pe :8080” )
http.ListenAndServe ( „:8080” , nul )
}

Aplicația anterioară creează un server HTTP de bază care se leagă la portul 8080. Serverul răspunde cu un mesaj de bază așa cum a fost definit anterior.

Testarea aplicației

Înainte de a dockeriza aplicația, permiteți-ne să ne asigurăm că aplicația funcționează corect. Rulați următoarea comandă:

$ du-te alerga main.go

Comanda anterioară pornește aplicația și returnează mesajul după cum urmează:

Serverul rulează pe: 8080

Apoi, pentru a testa serverul HTTP, puteți rula comanda „curl” după cum urmează:

$ curl http: // gazdă locală: 8080 /

Comanda anterioară ar trebui să returneze mesajul după cum urmează:

De la Docker ( : %

Acum putem continua și dockeriza aplicația anterioară, așa cum este definită în pașii următori.

Containerizarea aplicației

Următorii pași sunt discutarea modului de a construi un container pentru aplicație. Începem prin a crea fișierul Dockerfile în directorul proiectului.

$ CD go_server

Creați un fișier numit Dockerfile fără nicio extensie și editați fișierul cu un editor de text. Acest fișier ne permite să definim toate cerințele pentru aplicația noastră, după cum urmează:

$ atingere Dockerfile
$ deoarece Dockerfile

Adăugați configurația după cum urmează:

DIN Golang: 1.21

WORKDIR / aplicația

COPIE . .

RUN go build main.go -O principal .

EXPUNE 8080

CMD [ './principal' ]

În fișierul Dockerfile anterior, definim operațiunile anterioare pentru aplicație.

  • Setați imaginea de bază la versiunea oficială a imaginii Golang 1.21.
  • Configurați directorul de lucru din interiorul containerului la „/app”.
  • Copiem întregul director al proiectului în container.
  • Construiți aplicația Go în interiorul containerului.
  • Expuneți portul 8080 pentru a permite un trafic HTTP de intrare.
  • Setați comanda pentru a rula aplicația Go.

Construirea imaginii Docker

Pentru a construi imaginea pentru aplicație, deschideți terminalul și navigați la directorul proiectului. Apoi, rulați următoarea comandă pentru a construi imaginea:

$ sudo docker build -t go_server_docker .

Înlocuiți go_server_docker cu numele căruia doriți să-i atribuiți imaginea aplicației.

După construirea cu succes a imaginii Docker, puteți rula un container pe baza acelei imagini cu următoarea comandă:

$ docker run -p 8080 : 8080 go_server_docker

Comanda anterioară ar trebui să mapați portul 8080 de la mașina gazdă la portul 8080 din interiorul containerului.

Pentru a testa containerul, executați următoarea comandă:

$ curl http: // gazdă locală: 8080

Aceasta ar trebui să imprime mesajul care este definit în aplicație.

Concluzie

În acest tutorial, am învățat cum să creăm o aplicație Go de bază. De asemenea, am învățat cum să containerizam aplicația prin definirea cerințelor în fișierul Docker, construirea imaginii din container și rularea containerului din imagine.