Aplicació Golang per executar-se com a contenidor Docker

Aplicacio Golang Per Executar Se Com A Contenidor Docker



En aquest tutorial, aprendrem els conceptes bàsics del contenidor configurant una aplicació Golang perquè s'executi com a contenidor Docker. Aprendrem a treballar amb un Dockerfile per configurar tots els requisits de la nostra aplicació.

Go és un llenguatge de programació de codi obert, escrit de manera estàtica i compilat que és conegut per la seva capacitat per facilitar el desenvolupament d'un programari senzill, fiable i altament eficient. Troba la utilitat per crear aplicacions diverses, com ara aplicacions web, solucions natives del núvol, interfícies de línia d'ordres (CLI) i, curiosament, fins i tot el mateix Docker està creat amb Go.

En el nostre cas, construïm un servidor HTTP senzill a Go que ens permet demostrar com construir i acoblar l'aplicació en passos senzills.







Requisits:

Per seguir aquest tutorial, necessiteu les eines següents:



  1. Compilador Go instal·lat (es requereix la versió 1.21 i superior)
  2. Executant Docker Engine a la vostra màquina amfitrió
  3. Un IDE o editor de text per editar l'aplicació Go. Recomanem utilitzar Visual Studio o Vim
  4. Un intèrpret de línia d'ordres com Bash, ZSH, PowerShell, etc.

Amb els requisits establerts, continuem i aprenem a crear l'aplicació.



Construcció de l'aplicació

El següent pas és crear la nostra aplicació. En el nostre cas, construïm un servidor HTTP senzill que respon amb un missatge senzill.





Comenceu creant un directori per emmagatzemar el projecte Go. Podeu proporcionar qualsevol nom adequat.

$ mkdir go_server

Navegueu al directori i creeu un fitxer nou per emmagatzemar el codi font. En el nostre cas, anomenem el fitxer 'main.go', que indica que el fitxer és un codi font de Go.



$ tocar main.go

Finalment, editeu el fitxer i afegiu el codi font a l'aplicació tal com es mostra a continuació:

paquet principal

importar (
'fmt'
'net/http'
)

funció principal ( ) {
// gestionar les sol·licituds entrants
http.HandleFunc ( '/' , funció ( En http.ResponseWriter, r * http.Solicitud ) {
// Escriu una resposta al client
fmt.Fprintf ( En , 'Des de Docker (:' )
} )

// Inicieu el servidor HTTP al port 8080
fmt.Println ( 'El servidor s'està executant a :8080' )
http.ListenAndServe ( ':8080' , nul )
}

L'aplicació anterior crea un servidor HTTP bàsic que s'uneix al port 8080. El servidor respon amb un missatge bàsic tal com s'ha definit anteriorment.

Prova de l'aplicació

Abans d'acoblar l'aplicació, assegurem-nos que l'aplicació funciona correctament. Executeu l'ordre següent:

$ anar a córrer main.go

L'ordre anterior inicia l'aplicació i retorna el missatge de la següent manera:

El servidor s'està executant a: 8080

A continuació, per provar el servidor HTTP, podeu executar l'ordre 'curl' de la següent manera:

$ curl http: // localhost: 8080 /

L'ordre anterior hauria de retornar el missatge de la següent manera:

De Docker ( : %

Ara podem continuar i acoblar l'aplicació anterior tal com es defineix als passos següents.

Contenidor de l'aplicació

Els passos següents són discutir com crear un contenidor per a l'aplicació. Comencem creant el Dockerfile al directori del projecte.

$ cd go_server

Creeu un fitxer anomenat Dockerfile sense cap extensió i editeu-lo amb un editor de text. Aquest fitxer ens permet definir tots els requisits per a la nostra aplicació de la següent manera:

$ tocar Dockerfile
$ perquè Dockerfile

Afegiu la configuració de la següent manera:

DE Golang: 1.21

DIR. TREBALL / aplicació

CÒPIA . .

RUN go build main.go -O principal.

EXPOSAR 8080

CMD [ './principal' ]

A l'anterior Dockerfile, definim les operacions anteriors per a l'aplicació.

  • Estableix la imatge base a la versió oficial de la imatge Golang 1.21.
  • Configureu el directori de treball dins del contenidor a '/app'.
  • Copiem tot el directori del projecte al contenidor.
  • Creeu l'aplicació Go dins del contenidor.
  • Exposeu el port 8080 per permetre un trànsit HTTP entrant.
  • Configureu l'ordre per executar l'aplicació Go.

Construcció de la imatge Docker

Per crear la imatge de l'aplicació, obriu el terminal i navegueu al directori del projecte. A continuació, executeu l'ordre següent per crear la imatge:

$ sudo construcció docker -t go_server_docker .

Substituïu el go_server_docker pel nom que voleu assignar a la imatge de l'aplicació.

Després de crear correctament la imatge de Docker, podeu executar un contenidor basat en aquesta imatge amb l'ordre següent:

$ Docker Run -p 8080 : 8080 go_server_docker

L'ordre anterior hauria de mapar el port 8080 de la màquina host al port 8080 dins del contenidor.

Per provar el contenidor, executeu l'ordre següent:

$ curl http: // localhost: 8080

Això hauria d'imprimir el missatge que es defineix a l'aplicació.

Conclusió

En aquest tutorial, hem après a crear una aplicació Go bàsica. També vam aprendre a contenidoritzar l'aplicació definint els requisits al Dockerfile, construint la imatge des del contenidor i executant el contenidor des de la imatge.