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:
- Compilatorul Go instalat (este necesară versiunea 1.21 și mai sus)
- Rularea Docker Engine pe mașina dvs. gazdă
- Un IDE sau un editor de text pentru a edita aplicația Go. Vă recomandăm să utilizați Visual Studio sau Vim
- 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_serverNavigaț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 principalimport (
'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.goComanda anterioară pornește aplicația și returnează mesajul după cum urmează:
Serverul rulează pe: 8080Apoi, 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_serverCreaț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.21WORKDIR / 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_dockerComanda 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ă: 8080Aceasta 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.