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:
- Zainstalowany kompilator Go (wymagana wersja 1.21 i nowsza)
- Uruchamianie Docker Engine na komputerze hosta
- Edytor IDE lub tekstu do edycji aplikacji Go. Zalecamy korzystanie z Visual Studio lub Vima
- 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_serverPrzejdź 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łównyimport (
„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.goPoprzednie polecenie uruchamia aplikację i zwraca komunikat w następujący sposób:
Serwer działa na: 8080Nastę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_serverUtwó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.21KATALOG 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_dockerPoprzednie 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: 8080Powinno 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.