Приложение Golang для запуска в качестве Docker-контейнера

Prilozenie Golang Dla Zapuska V Kacestve Docker Kontejnera



В этом уроке мы изучим основы контейнеризации, настроив приложение 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. Вы можете указать любое подходящее имя.

$ мкдир go_server

Перейдите в каталог и создайте новый файл для хранения исходного кода. В нашем случае мы называем файл «main.go», что означает, что файл представляет собой исходный код Go.



$ трогать main.go

Наконец, отредактируйте файл и добавьте исходный код в приложение, как показано ниже:

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

Импортировать (
'ФМТ'
'сеть/http'
)

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

// Запустите HTTP-сервер на порту 8080
fmt.Println ( «Сервер работает на: 8080» )
http.ListenAndServe ( ':8080' , ноль )
}

Предыдущее приложение создает базовый HTTP-сервер, который привязывается к порту 8080. Сервер отвечает базовым сообщением, как было определено ранее.

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

Прежде чем докционировать приложение, давайте убедимся, что оно работает правильно. Выполните следующую команду:

$ иди беги main.go

Предыдущая команда запускает приложение и возвращает сообщение следующего вида:

Сервер работает на: 8080

Далее, чтобы протестировать HTTP-сервер, вы можете запустить команду «curl» следующим образом:

$ локон http: // локальный хост: 8080 /

Предыдущая команда должна вернуть сообщение следующим образом:

Из Докера ( : %

Теперь мы можем продолжить и закрепить предыдущее приложение, как определено в следующих шагах.

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

Следующим шагом будет обсуждение того, как создать контейнер для приложения. Начнем с создания Dockerfile в каталоге проекта.

$ CD go_server

Создайте файл Dockerfile без расширения и отредактируйте его в текстовом редакторе. Этот файл позволяет нам определить все требования для нашего приложения следующим образом:

$ трогать Докерфайл
$ потому что Докерфайл

Добавьте конфигурацию следующим образом:

ИЗ Голанга: 1.21

РАБОЧИЙ ДИАПАЗОН / приложение

КОПИРОВАТЬ. .

RUN иди собери main.go основной .

РАЗОБЛАЧАТЬ 8080

КМД [ './основной' ]

В предыдущем файле Dockerfile мы определяем предыдущие операции для приложения.

  • Установите в качестве базового образа официальный образ Golang версии 1.21.
  • Настройте рабочий каталог внутри контейнера как «/app».
  • Копируем всю директорию проекта в контейнер.
  • Создайте приложение Go внутри контейнера.
  • Откройте порт 8080, чтобы разрешить входящий HTTP-трафик.
  • Задайте команду для запуска приложения Go.

Создание образа Docker

Чтобы создать образ для приложения, откройте терминал и перейдите в каталог проекта. Затем выполните следующую команду для создания образа:

$ судо сборка докера go_server_docker.

Замените go_server_docker именем, которое вы хотите присвоить образу приложения.

После успешной сборки образа Docker вы можете запустить контейнер на основе этого образа с помощью следующей команды:

$ запуск докера -п 8080 : 8080 go_server_docker

Предыдущая команда должна сопоставить порт 8080 хост-компьютера с портом 8080 внутри контейнера.

Чтобы протестировать контейнер, выполните следующую команду:

$ локон http: // локальный хост: 8080

Это должно напечатать сообщение, определенное в приложении.

Заключение

В этом уроке мы узнали, как создать базовое приложение Go. Мы также научились помещать приложение в контейнер, определяя требования в Dockerfile, создавая образ из контейнера и запуская контейнер из образа.