Приложение Golang за изпълнение като Docker контейнер

Prilozenie Golang Za Izp Lnenie Kato Docker Kontejner



В този урок ще научим основите на контейнеризирането, като настроим приложение Golang да работи като Docker контейнер. Ще научим как да работим с Dockerfile, за да конфигурираме всички изисквания за нашето приложение.

Go е статично въведен и компилиран език за програмиране с отворен код, който е известен със способността си да улеснява разработването на прост, надежден и високоефективен софтуер. Той намира полезността в изработването на различни приложения, включително уеб приложения, облачни решения, интерфейси на командния ред (CLI) и интригуващо, дори самият Docker е изработен с помощта на Go.

В нашия случай ние изграждаме прост HTTP сървър в Go, който ни позволява да демонстрираме как да изградим и докеризираме приложението с лесни стъпки.







Изисквания:

За да следвате този урок, имате нужда от следните инструменти:



  1. Инсталиран Go компилатор (изисква се версия 1.21 и по-нова)
  2. Стартиране на Docker Engine на вашата хост машина
  3. IDE или текстов редактор за редактиране на приложението Go. Препоръчваме да използвате Visual Studio или Vim
  4. Интерпретатор на команден ред като Bash, ZSH, PowerShell и др.

След като дадените изисквания са изпълнени, нека продължим и да научим как да създадем приложението.



Изграждане на приложението

Следващата стъпка е да изградим нашето приложение. В нашия случай изграждаме прост HTTP сървър, който отговаря с просто съобщение.





Започнете със създаване на директория за съхранение на проекта Go. Можете да предоставите всяко подходящо име.

$ mkdir go_server

Отидете в директорията и създайте нов файл за съхранение на изходния код. В нашия случай наричаме файла „main.go“, което означава, че файлът е изходен код на Go.



$ докосване main.go

Накрая редактирайте файла и добавете изходния код към приложението, както е показано по-долу:

основен пакет

импортиране (
'fmt'
'net/http'
)

основна функция ( ) {
// обработва входящи заявки
http.HandleFunc ( '/' , функц ( в http.ResponseWriter, r * http.Заявка ) {
// Напишете отговор на клиента
fmt.Fprintf ( в , „От Docker (:“ )
} )

// Стартирайте HTTP сървъра на порт 8080
fmt.Println ( „Сървърът работи на :8080“ )
http.ListenAndServe ( ':8080' , нула )
}

Предишното приложение създава основен HTTP сървър, който се свързва с порт 8080. Сървърът отговаря с основно съобщение, както е дефинирано по-рано.

Тестване на приложението

Преди да докеризираме приложението, нека се уверим, че приложението функционира правилно. Изпълнете следната команда:

$ отидете, стартирайте main.go

Предишната команда стартира приложението и връща съобщението, както следва:

Сървърът работи на: 8080

След това, за да тествате HTTP сървъра, можете да изпълните командата „curl“, както следва:

$ къдря http: // локален хост: 8080 /

Предишната команда трябва да върне съобщението, както следва:

От Docker ( : %

Сега можем да продължим и да докеризираме предишното приложение, както е дефинирано в следващите стъпки.

Контейнериране на приложението

Следващите стъпки са обсъждане на това как да се създаде контейнер за приложението. Започваме със създаването на Dockerfile в директорията на проекта.

$ cd go_server

Създайте файл с име Dockerfile без разширение и го редактирайте с текстов редактор. Този файл ни позволява да дефинираме всички изисквания за нашето приложение, както следва:

$ докосване Докер файл
$ защото Докер файл

Добавете конфигурацията, както следва:

ОТ golang: 1.21

WORKDIR / ап

КОПИЕ . .

RUN отидете на изграждане на main.go основен .

ИЗЛОЖИ 8080

CMD [ './основен' ]

В предишния Dockerfile дефинираме предишните операции за приложението.

  • Задайте основното изображение на официалното изображение на Golang версия 1.21.
  • Конфигурирайте работната директория вътре в контейнера на „/app“.
  • Копираме цялата директория на проекта в контейнера.
  • Създайте приложението Go вътре в контейнера.
  • Изложете порт 8080, за да разрешите входящ HTTP трафик.
  • Задайте командата за стартиране на приложението Go.

Изграждане на Docker изображение

За да изградите изображението за приложението, отворете терминала и отидете до директорията на проекта. След това изпълнете следната команда, за да създадете изображението:

$ sudo изграждане на докер -T go_server_docker.

Заменете go_server_docker с името, което искате да присвоите на изображението на приложението.

След успешно изграждане на изображението на Docker, можете да стартирате контейнер, базиран на това изображение със следната команда:

$ докер изпълнение -стр 8080 : 8080 go_server_docker

Предишната команда трябва да съпостави порт 8080 от хост машината към порт 8080 вътре в контейнера.

За да тествате контейнера, изпълнете следната команда:

$ къдря http: // локален хост: 8080

Това трябва да отпечата съобщението, което е дефинирано в приложението.

Заключение

В този урок научихме как да създадем основно приложение Go. Научихме също как да контейнеризираме приложението, като дефинираме изискванията в Dockerfile, изградим изображението от контейнера и стартираме контейнера от изображението.