Aplikácia Golang na spustenie ako kontajner Docker

Aplikacia Golang Na Spustenie Ako Kontajner Docker



V tomto návode sa naučíme základy kontajnerizácie nastavením aplikácie Golang, aby sa spúšťala ako kontajner Docker. Naučíme sa pracovať s Dockerfile, aby sme nakonfigurovali všetky požiadavky pre našu aplikáciu.

Go je open source, staticky napísaný a kompilovaný programovací jazyk, ktorý je známy svojou schopnosťou uľahčiť vývoj jednoduchého, spoľahlivého a vysoko efektívneho softvéru. Nachádza užitočnosť pri vytváraní rôznych aplikácií vrátane webových aplikácií, cloudových natívnych riešení, rozhraní príkazového riadka (CLI) a je zaujímavé, že aj samotný Docker je vytvorený pomocou Go.

V našom prípade vytvárame jednoduchý HTTP server v Go, ktorý nám umožňuje demonštrovať, ako zostaviť a dockerizovať aplikáciu v jednoduchých krokoch.







Požiadavky:

Ak chcete pokračovať v tomto návode, potrebujete nasledujúce nástroje:



  1. Nainštalovaný kompilátor Go (vyžaduje sa verzia 1.21 a vyššia)
  2. Spustenie nástroja Docker Engine na hostiteľskom počítači
  3. IDE alebo textový editor na úpravu aplikácie Go. Odporúčame použiť Visual Studio alebo Vim
  4. Interpret príkazového riadka, ako je Bash, ZSH, PowerShell atď.

Po splnení daných požiadaviek pokračujte a naučte sa zostavovať aplikáciu.



Vytváranie aplikácie

Ďalším krokom je zostavenie našej aplikácie. V našom prípade vytvoríme jednoduchý HTTP server, ktorý odpovie jednoduchou správou.





Začnite vytvorením adresára na uloženie projektu Go. Môžete zadať ľubovoľný vhodný názov.

$ mkdir go_server

Prejdite do adresára a vytvorte nový súbor na uloženie zdrojového kódu. V našom prípade nazývame súbor „main.go“, ktorý označuje, že súbor je zdrojovým kódom Go.



$ dotyk main.go

Nakoniec upravte súbor a pridajte zdrojový kód do aplikácie, ako je znázornené v nasledujúcom texte:

hlavný balík

importovať (
'fmt'
'net/http'
)

func main ( ) {
// spracovávať prichádzajúce požiadavky
http.HandleFunc ( '/' , func ( In http.ResponseWriter, r * http.Žiadosť ) {
// Napíšte odpoveď klientovi
fmt.Fprintf ( In , 'Od Dockera (:' )
} )

// Spustite HTTP server na porte 8080
fmt.Println ( 'Server beží na: 8080' )
http.ListenAndServe ( ':8080' , nula )
}

Predchádzajúca aplikácia vytvorí základný HTTP server, ktorý sa viaže na port 8080. Server odpovie základnou správou, ako bola predtým definovaná.

Testovanie aplikácie

Pred ukotvením aplikácie sa uistite, že aplikácia funguje správne. Spustite nasledujúci príkaz:

$ choď spustiť main.go

Predchádzajúci príkaz spustí aplikáciu a vráti správu takto:

Server beží na: 8080

Ďalej, aby ste otestovali HTTP server, môžete spustiť príkaz „curl“ takto:

$ curl http: // localhost: 8080 /

Predchádzajúci príkaz by mal vrátiť správu takto:

Od Dockera ( : %

Teraz môžeme pokračovať a ukotviť predchádzajúcu aplikáciu, ako je definované v ďalších krokoch.

Kontajnerovanie aplikácie

V ďalších krokoch sa diskutuje o tom, ako vytvoriť kontajner pre aplikáciu. Začneme vytvorením súboru Dockerfile v adresári projektu.

$ cd go_server

Vytvorte súbor s názvom Dockerfile bez akejkoľvek prípony a upravte ho pomocou textového editora. Tento súbor nám umožňuje definovať všetky požiadavky pre našu aplikáciu nasledovne:

$ dotyk Dockerfile
$ pretože Dockerfile

Pridajte konfiguráciu nasledovne:

Z golangu: 1.21

WORKDIR / aplikácie

KOPÍROVAŤ . .

RUN go build main.go -O Hlavná .

VYSTAVIŤ 8080

CMD [ './Hlavná' ]

V predchádzajúcom Dockerfile definujeme predchádzajúce operácie pre aplikáciu.

  • Nastavte základný obrázok na oficiálnu verziu obrázka Golang 1.21.
  • Nakonfigurujte pracovný adresár v kontajneri na „/app“.
  • Do kontajnera skopírujeme celý adresár projektu.
  • Vytvorte aplikáciu Go vo vnútri kontajnera.
  • Odkryte port 8080, aby ste povolili prichádzajúcu komunikáciu HTTP.
  • Nastavte príkaz na spustenie aplikácie Go.

Vytvorenie obrazu Docker

Ak chcete vytvoriť obraz pre aplikáciu, otvorte terminál a prejdite do adresára projektu. Potom spustite nasledujúci príkaz na vytvorenie obrázka:

$ sudo zostava dockera -t go_server_docker .

Nahraďte go_server_docker názvom, ktorému chcete priradiť obrázok aplikácie.

Po úspešnom vytvorení obrazu Docker môžete spustiť kontajner založený na tomto obrázku pomocou nasledujúceho príkazu:

$ docker spustiť -p 8080 : 8080 go_server_docker

Predchádzajúci príkaz by mal mapovať port 8080 z hostiteľského počítača na port 8080 vo vnútri kontajnera.

Ak chcete otestovať kontajner, spustite nasledujúci príkaz:

$ curl http: // localhost: 8080

Toto by malo vytlačiť správu, ktorá je definovaná v aplikácii.

Záver

V tomto návode sme sa naučili, ako vytvoriť základnú aplikáciu Go. Tiež sme sa naučili, ako kontajnerizovať aplikáciu definovaním požiadaviek v súbore Dockerfile, vytvorením obrázka z kontajnera a spustením kontajnera z obrázka.