Golang-applikation til at køre som en docker-container

Golang Applikation Til At Kore Som En Docker Container



I denne tutorial skal vi lære det grundlæggende i containerisering ved at konfigurere en Golang-applikation til at køre som en Docker-container. Vi lærer, hvordan man arbejder med en Dockerfile for at konfigurere alle kravene til vores applikation.

Go er et open source, statisk skrevet og kompileret programmeringssprog, der er kendt for dets evne til at lette udviklingen af ​​en enkel, pålidelig og yderst effektiv software. Det finder nytten i at lave forskellige applikationer, herunder webapps, cloud-native løsninger, kommandolinjegrænseflader (CLI'er), og spændende nok er selv Docker lavet ved hjælp af Go.

I vores tilfælde bygger vi en simpel HTTP-server i Go, som giver os mulighed for at demonstrere, hvordan man bygger og Dockerize applikationen i enkle trin.







Krav:

For at følge med i denne tutorial har du brug for følgende værktøjer:



  1. Installeret Go compiler (version 1.21 og nyere påkrævet)
  2. Kører Docker Engine på din værtsmaskine
  3. En IDE- eller teksteditor til at redigere Go-applikationen. Vi anbefaler at bruge Visual Studio eller Vim
  4. En kommandolinjefortolker som Bash, ZSH, PowerShell osv.

Med de givne krav opfyldt, lad os fortsætte og lære, hvordan man bygger applikationen.



Opbygning af applikationen

Det næste skridt er at bygge vores applikation. I vores tilfælde bygger vi en simpel HTTP-server, der svarer med en simpel besked.





Start med at oprette en mappe til at gemme Go-projektet. Du kan angive et hvilket som helst passende navn.

$ mkdir go_server

Naviger ind i mappen og opret en ny fil for at gemme kildekoden. I vores tilfælde kalder vi filen 'main.go', som angiver, at filen er en Go-kildekode.



$ røre ved main.go

Til sidst skal du redigere filen og tilføje kildekoden til applikationen som vist i følgende:

hovedpakke

importere (
'fmt'
'net/http'
)

func hoved ( ) {
// håndtere indkommende forespørgsler
http.HandleFunc ( '/' , func ( I http.ResponseWriter, r * http.Forespørgsel ) {
// Skriv et svar til kunden
fmt.Fprintf ( I , 'Fra Docker (:' )
} )

// Start HTTP-serveren på porten 8080
fmt.Println ( 'Serveren kører på :8080' )
http.ListenAndServe ( ':8080' , nul )
}

Den tidligere applikation opretter en grundlæggende HTTP-server, der binder til port 8080. Serveren svarer med en grundlæggende besked som tidligere defineret.

Test af applikationen

Før vi dockeriserer applikationen, lad os sikre os, at appen fungerer korrekt. Kør følgende kommando:

$ gå løb main.go

Den forrige kommando starter programmet og returnerer meddelelsen som følger:

Serveren kører på: 8080

Dernæst, for at teste HTTP-serveren, kan du køre kommandoen 'curl' som følger:

$ krølle http: // lokal vært: 8080 /

Den forrige kommando skulle returnere meddelelsen som følger:

Fra Docker ( : %

Vi kan nu fortsætte og dockerisere den tidligere applikation som defineret i de næste trin.

Containerisering af applikationen

De næste trin er at diskutere, hvordan man bygger en container til applikationen. Vi starter med at oprette Dockerfilen i projektmappen.

$ cd go_server

Opret en fil kaldet Dockerfile uden nogen udvidelse og rediger filen med en teksteditor. Denne fil giver os mulighed for at definere alle kravene til vores ansøgning som følger:

$ røre ved Dockerfil
$ fordi Dockerfil

Tilføj konfigurationen som følger:

FRA golang: 1.21

WORKDIR / app

KOPI . .

RUN go build main.go -O vigtigste.

UDSÆTTE 8080

CMD [ './main' ]

I den forrige Dockerfile definerer vi de tidligere operationer for applikationen.

  • Indstil basisbilledet til det officielle Golang-billede version 1.21.
  • Konfigurer arbejdsmappen inde i beholderen til '/app'.
  • Vi kopierer hele projektkataloget ind i containeren.
  • Byg Go-applikationen inde i containeren.
  • Udsæt port 8080 for at tillade en indgående HTTP-trafik.
  • Indstil kommandoen til at køre Go-applikationen.

Opbygning af Docker-billedet

For at bygge billedet til applikationen skal du åbne terminalen og navigere til projektbiblioteket. Kør derefter følgende kommando for at bygge billedet:

$ sudo docker bygning -t go_server_docker .

Erstat go_server_docker med det navn, du ønsker at tildele appbilledet.

Efter at have opbygget Docker-billedet, kan du køre en container baseret på det billede med følgende kommando:

$ docker-løb -s 8080 : 8080 go_server_docker

Den forrige kommando skulle kortlægge port 8080 fra værtsmaskinen til port 8080 inde i containeren.

For at teste beholderen skal du køre følgende kommando:

$ krølle http: // lokal vært: 8080

Dette bør udskrive meddelelsen, der er defineret i applikationen.

Konklusion

I dette selvstudie lærte vi, hvordan man opretter en grundlæggende Go-applikation. Vi lærte også, hvordan man containeriserer applikationen ved at definere kravene i Dockerfilen, bygge billedet fra containeren og køre containeren fra billedet.