Aplikace Golang ke spuštění jako kontejner Docker

Aplikace Golang Ke Spusteni Jako Kontejner Docker



V tomto tutoriálu se naučíme základy kontejnerizace nastavením aplikace Golang, aby běžela jako kontejner Docker. Naučíme se pracovat s Dockerfile, abychom nakonfigurovali všechny požadavky pro naši aplikaci.

Go je open-source, staticky typovaný a zkompilovaný programovací jazyk, který je známý svou schopností usnadnit vývoj jednoduchého, spolehlivého a vysoce efektivního softwaru. Nachází užitečnost při vytváření různých aplikací včetně webových aplikací, cloudových nativních řešení, rozhraní příkazového řádku (CLI) a je zajímavé, že i samotný Docker je vytvořen pomocí Go.

V našem případě stavíme jednoduchý HTTP server v Go, který nám umožňuje demonstrovat, jak sestavit a dockerizovat aplikaci v jednoduchých krocích.







Požadavky:

Abyste mohli pokračovat v tomto tutoriálu, potřebujete následující nástroje:



  1. Nainstalovaný kompilátor Go (vyžaduje se verze 1.21 a vyšší)
  2. Spuštění Docker Engine na vašem hostitelském počítači
  3. IDE nebo textový editor pro úpravu aplikace Go. Doporučujeme používat Visual Studio nebo Vim
  4. Interpret příkazového řádku, jako je Bash, ZSH, PowerShell atd.

Po splnění daných požadavků pokračujte a naučte se sestavit aplikaci.



Vytvoření aplikace

Dalším krokem je sestavení naší aplikace. V našem případě vybudujeme jednoduchý HTTP server, který odpoví jednoduchou zprávou.





Začněte vytvořením adresáře pro uložení projektu Go. Můžete zadat jakýkoli vhodný název.

$ mkdir go_server

Přejděte do adresáře a vytvořte nový soubor pro uložení zdrojového kódu. V našem případě nazýváme soubor „main.go“, který označuje, že soubor je zdrojovým kódem Go.



$ dotek main.go

Nakonec upravte soubor a přidejte zdrojový kód do aplikace, jak je ukázáno v následujícím:

hlavní balíček

import (
'fmt'
'net/http'
)

func main ( ) {
// vyřizovat příchozí požadavky
http.HandleFunc ( '/' , func ( v http.ResponseWriter, r * http.Žádost ) {
// Napište klientovi odpověď
fmt.Fprintf ( v , 'Od Dockeru (:' )
} )

// Spusťte HTTP server na portu 8080
fmt.Println ( 'Server běží na:8080' )
http.ListenAndServe ( ':8080' , nula )
}

Předchozí aplikace vytvoří základní HTTP server, který se váže na port 8080. Server odpoví základní zprávou, jak byla definována dříve.

Testování aplikace

Než aplikaci ukotvíme, ujistěte se, že aplikace funguje správně. Spusťte následující příkaz:

$ běž spustit main.go

Předchozí příkaz spustí aplikaci a vrátí zprávu takto:

Server běží na: 8080

Dále, abyste otestovali HTTP server, můžete spustit příkaz „curl“ následovně:

$ curl http: // localhost: 8080 /

Předchozí příkaz by měl vrátit zprávu takto:

Od Dockeru ( : %

Nyní můžeme pokračovat a ukotvit předchozí aplikaci, jak je definováno v dalších krocích.

Kontejnerování aplikace

Další kroky pojednávají o tom, jak vytvořit kontejner pro aplikaci. Začneme vytvořením Dockerfile v adresáři projektu.

$ CD go_server

Vytvořte soubor s názvem Dockerfile bez jakékoli přípony a upravte soubor pomocí textového editoru. Tento soubor nám umožňuje definovat všechny požadavky pro naši aplikaci následovně:

$ dotek Dockerfile
$ protože Dockerfile

Přidejte konfiguraci následovně:

Z golangu: 1.21

WORKDIR / aplikace

KOPÍROVAT . .

RUN go build main.go hlavní .

ODHALIT 8080

CMD [ './hlavní' ]

V předchozím Dockerfile definujeme předchozí operace pro aplikaci.

  • Nastavte základní obrázek na oficiální obrázek Golang verze 1.21.
  • Nakonfigurujte pracovní adresář uvnitř kontejneru na „/app“.
  • Zkopírujeme celý adresář projektu do kontejneru.
  • Sestavte aplikaci Go uvnitř kontejneru.
  • Vystavte port 8080, abyste povolili příchozí provoz HTTP.
  • Nastavte příkaz ke spuštění aplikace Go.

Vytvoření obrazu Dockeru

Chcete-li vytvořit bitovou kopii pro aplikaci, otevřete terminál a přejděte do adresáře projektu. Dále spusťte následující příkaz pro vytvoření obrázku:

$ sudo sestavení dockeru -t go_server_docker .

Nahraďte go_server_docker názvem, kterému chcete přiřadit obrázek aplikace.

Po úspěšném vytvoření obrazu Docker můžete spustit kontejner založený na tomto obrazu pomocí následujícího příkazu:

$ docker spustit -p 8080 : 8080 go_server_docker

Předchozí příkaz by měl mapovat port 8080 z hostitelského počítače na port 8080 uvnitř kontejneru.

Chcete-li kontejner otestovat, spusťte následující příkaz:

$ curl http: // localhost: 8080

Tím by se měla vytisknout zpráva definovaná v aplikaci.

Závěr

V tomto tutoriálu jsme se naučili, jak vytvořit základní aplikaci Go. Také jsme se naučili, jak kontejnerizovat aplikaci definováním požadavků v Dockerfile, vytvořením obrazu z kontejneru a spuštěním kontejneru z obrazu.