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:
- Nainstalovaný kompilátor Go (vyžaduje se verze 1.21 a vyšší)
- Spuštění Docker Engine na vašem hostitelském počítači
- IDE nebo textový editor pro úpravu aplikace Go. Doporučujeme používat Visual Studio nebo Vim
- 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_serverPř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íčekimport (
'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.goPředchozí příkaz spustí aplikaci a vrátí zprávu takto:
Server běží na: 8080Dá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_serverVytvoř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.21WORKDIR / 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_dockerPř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: 8080Tí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.