Aplikacja Golang do działania jako kontener Docker

Aplikacja Golang Do Dzialania Jako Kontener Docker



W tym samouczku nauczymy się podstaw konteneryzacji, konfigurując aplikację Golang do działania jako kontener Docker. Dowiemy się, jak pracować z plikiem Dockerfile, aby skonfigurować wszystkie wymagania dla naszej aplikacji.

Go to otwarty, statycznie pisany i kompilowany język programowania, który słynie ze swojej zdolności do ułatwiania tworzenia prostego, niezawodnego i wysoce wydajnego oprogramowania. Znajduje zastosowanie w tworzeniu różnorodnych aplikacji, w tym aplikacji internetowych, rozwiązań natywnych w chmurze, interfejsów wiersza poleceń (CLI) i, co ciekawe, nawet sam Docker jest tworzony przy użyciu Go.

W naszym przypadku budujemy prosty serwer HTTP w Go, co pozwala nam w prostych krokach zademonstrować, jak zbudować i zadokować aplikację.







Wymagania:

Aby postępować zgodnie z tym samouczkiem, potrzebujesz następujących narzędzi:



  1. Zainstalowany kompilator Go (wymagana wersja 1.21 i nowsza)
  2. Uruchamianie Docker Engine na komputerze hosta
  3. Edytor IDE lub tekstu do edycji aplikacji Go. Zalecamy korzystanie z Visual Studio lub Vima
  4. Interpreter wiersza poleceń, taki jak Bash, ZSH, PowerShell itp.

Po spełnieniu podanych wymagań przejdźmy dalej i nauczmy się budować aplikację.



Budowanie aplikacji

Kolejnym krokiem jest zbudowanie naszej aplikacji. W naszym przypadku budujemy prosty serwer HTTP, który odpowiada prostym komunikatem.





Zacznij od utworzenia katalogu do przechowywania projektu Go. Możesz podać dowolną pasującą nazwę.

$ mkdir go_server

Przejdź do katalogu i utwórz nowy plik do przechowywania kodu źródłowego. W naszym przypadku nazywamy plik „main.go”, co oznacza, że ​​jest to kod źródłowy Go.



$ dotykać główne.go

Na koniec edytuj plik i dodaj kod źródłowy do aplikacji, jak pokazano poniżej:

pakiet główny

import (
„fm”
„net/http”
)

funkcja główna ( ) {
// obsługiwać przychodzące żądania
http.HandleFunc ( „/” , fun ( w http.ResponseWriter, r * http.Żądanie ) {
// Napisz odpowiedź dla klienta
fmt.Fprintf ( w , „Z Dockera (:” )
} )

// Uruchom serwer HTTP na porcie 8080
fmt.Drukuj ( „Serwer działa na: 8080” )
http.ListenAndServe ( „:8080” , zero )
}

Poprzednia aplikacja tworzy podstawowy serwer HTTP, który łączy się z portem 8080. Serwer odpowiada podstawowym komunikatem zgodnie z wcześniejszą definicją.

Testowanie aplikacji

Zanim dokujemy aplikację, upewnijmy się, że aplikacja działa poprawnie. Uruchom następujące polecenie:

$ idź, uruchom main.go

Poprzednie polecenie uruchamia aplikację i zwraca komunikat w następujący sposób:

Serwer działa na: 8080

Następnie, aby przetestować serwer HTTP, możesz uruchomić polecenie „curl” w następujący sposób:

$ zwijać http: // Lokalny Gospodarz: 8080 /

Poprzednie polecenie powinno zwrócić wiadomość w następujący sposób:

Z Dockera ( : %

Możemy teraz kontynuować i zadokować poprzednią aplikację zgodnie z definicją w kolejnych krokach.

Konteneryzacja aplikacji

Kolejne kroki to omówienie sposobu zbudowania kontenera dla aplikacji. Zaczynamy od utworzenia pliku Dockerfile w katalogu projektu.

$ płyta CD go_server

Utwórz plik o nazwie Dockerfile bez żadnego rozszerzenia i edytuj go za pomocą edytora tekstu. Plik ten pozwala nam zdefiniować wszystkie wymagania dla naszej aplikacji w następujący sposób:

$ dotykać Plik Dockera
$ ponieważ Plik Dockera

Dodaj konfigurację w następujący sposób:

Z golanga: 1.21

KATALOG PRACY / aplikacja

KOPIUJ . .

URUCHOM idź, zbuduj main.go -O główny .

UJAWNIĆ 8080

CMD [ './główny' ]

W poprzednim pliku Dockerfile definiujemy poprzednie operacje dla aplikacji.

  • Ustaw obraz podstawowy na oficjalną wersję obrazu Golang 1.21.
  • Skonfiguruj katalog roboczy wewnątrz kontenera na „/app”.
  • Kopiujemy cały katalog projektu do kontenera.
  • Zbuduj aplikację Go wewnątrz kontenera.
  • Odsłoń port 8080, aby umożliwić przychodzący ruch HTTP.
  • Ustaw polecenie uruchomienia aplikacji Go.

Budowanie obrazu Dockera

Aby zbudować obraz aplikacji, otwórz terminal i przejdź do katalogu projektu. Następnie uruchom następujące polecenie, aby zbudować obraz:

$ sudo kompilacja dokera -T go_server_docker .

Zastąp go_server_docker nazwą, do której chcesz przypisać obraz aplikacji.

Po pomyślnym zbudowaniu obrazu Dockera możesz uruchomić kontener oparty na tym obrazie za pomocą następującego polecenia:

$ uruchomienie dokera -P 8080 : 8080 go_server_docker

Poprzednie polecenie powinno zmapować port 8080 z komputera hosta na port 8080 w kontenerze.

Aby przetestować kontener, uruchom następującą komendę:

$ zwijać http: // Lokalny Gospodarz: 8080

Powinno to wydrukować komunikat zdefiniowany w aplikacji.

Wniosek

W tym samouczku nauczyliśmy się tworzyć podstawową aplikację Go. Dowiedzieliśmy się również, jak konteneryzować aplikację, definiując wymagania w pliku Dockerfile, budując obraz z kontenera i uruchamiając kontener z obrazu.