Инициализация проекта на Go с помощью Docker Init
На этом шаге мы инициализируем новый проект на Go и используем команду docker init
для генерации необходимых файлов Dockerfile и docker-compose.yml. Это станет отправной точкой для контейнеризации нашего приложения на Go.
Сначала создадим новую директорию для нашего проекта на Go. Откройте терминал на виртуальной машине LabEx и выполните следующие команды:
mkdir my-go-app
cd my-go-app
Эти команды создают новую директорию с именем my-go-app
в директории ~/project
, а затем изменяют текущую директорию на my-go-app
.
Далее нам нужно инициализировать модуль Go. Это создаст файл go.mod
, который отслеживает зависимости нашего проекта.
Выполните следующую команду в терминале:
go mod init my-go-app
Эта команда инициализирует новый модуль Go с именем my-go-app
. Вы должны увидеть вывод, похожий на следующий:
go: creating new go.mod: module my-go-app
go: to add module requirements and sums:
go mod tidy
Теперь создадим простое приложение на Go. Создайте новый файл с именем main.go
в директории my-go-app
с помощью редактора nano
:
nano main.go
Добавьте следующий код в файл main.go
:
package main
import "fmt"
func main() {
fmt.Println("Hello, Docker!")
}
Это простая программа на Go, которая выводит "Hello, Docker!" в консоль.
Сохраните файл и выйдите из редактора nano
, нажав Ctrl+X
, затем Y
, а затем Enter
.
Теперь мы будем использовать команду docker init
для генерации файлов Dockerfile и docker-compose.yml. Однако на виртуальной машине LabEx по умолчанию не установлен Docker Compose. Мы должны установить его сначала.
Скачайте последнюю версию Docker Compose с помощью curl
:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Сделайте бинарный файл Docker Compose исполняемым:
sudo chmod +x /usr/local/bin/docker-compose
Проверьте установку, проверив версию Docker Compose:
docker-compose --version
Вы должны увидеть вывод, похожий на следующий:
docker-compose version 1.29.2, build xxxxxxx
Теперь, когда Docker Compose установлен, мы можем продолжить с использованием docker init
.
Выполните следующую команду в терминале:
docker init
Команда docker init
задаст ряд вопросов для настройки файлов Dockerfile и docker-compose.yml. Вот рекомендуемые ответы для этого практического занятия:
- What do you want to call this application?
my-go-app
- What port is this app listening on?
3000
(Это заполнитель, в этом простом примере мы на самом деле не будем использовать порт)
- What is the main file to execute?
main.go
- Would you like to include the Docker Compose configuration?
Yes
- Please choose a Docker Compose version:
2.0
После ответа на эти вопросы команда docker init
сгенерирует файл Dockerfile
и файл docker-compose.yml
в директории my-go-app
.
Вы можете просмотреть содержимое сгенерированных файлов с помощью команды cat
:
cat Dockerfile
cat docker-compose.yml
Эти файлы предоставляют базовую конфигурацию для сборки и запуска нашего приложения на Go в Docker-контейнере. На следующем шаге мы настроим эти файлы так, чтобы они лучше соответствовали нашим потребностям.