Как настроить локальное окружение для веб-разработки на Go?

Как я могу автоматизировать и ускорить процесс сборки и запуска проекта на Go, чтобы он происходил в фоновом режиме без необходимости выполнять команду сборки и запуска каждый раз? Кроме того, как я могу настроить GoLand IDE, чтобы указать путь до компилятора, который находится в контейнере, который завершается после выполнения программы? Можно ли держать контейнер запущенным постоянно?
  • 12 февраля 2024 г. 14:09
Ответы на вопрос 2
Для начала, чтобы настроить локальное окружение для веб-разработки на Go, вам нужно выполнить несколько шагов:

1. Установите Go.
2. Настройте вашу среду разработки (например, GoLand или Visual Studio Code с плагином для Go).
3. Создайте структуру вашего проекта.
4. Настройте автоматическую сборку и запуск вашего приложения.

### Установка Go

Перейдите на [официальный сайт Go](https://golang.org/dl/) и загрузите дистрибутив для вашей операционной системы. Затем установите Go, следуя инструкциям.

### Настройка IDE (GoLand)

После установки Go, настройте GoLand:

1. Откройте GoLand и создайте новый проект или откройте существующий.
2. В GoLand, убедитесь, что ваша `GOPATH` и `GOROOT` настроены правильно в настройках (`File > Settings > Go > GOPATH` для `GOPATH` и `File > Settings > Go > GOROOT` для `GOROOT`).

### Структура проекта

Стандартная структура проекта Go обычно выглядит так:

```
my_project/
├── bin/
├── pkg/
└── src/
    └── my_app/
        ├── main.go
        ├── dependancy.go
        └── ...
```

Создайте файлы для вашего веб-приложения внутри папки `src`.

### Автоматизация сборки и запуска

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

- **Fresh**: Это инструмент для автоматической пересборки Go-приложений при изменении файлов исходного кода.
- **Reflex**: Это еще один инструмент, который можно использовать для наблюдения за изменениями в файлах и автоматического выполнения команд.

#### Пример использования Fresh:

1. Установите Fresh, используя команду `go get`:

   ```
   go get github.com/pilu/fresh
   ```

2. Запустите Fresh в корне вашего проекта:

   ```
   fresh
   ```

Fresh будет следить за файлами вашего проекта и автоматически перестраивать и запускать ваше приложение при изменении исходного кода.

### Использование Docker контейнеров

Теперь по поводу запуска Go компилятора в Docker контейнере и настройки IDE для работы с этим контейнером, IDE GoLand обычно работает с локально установленным компилятором Go, поэтому запуск компилятора из контейнера и использование его в IDE может быть нестандартной задачей и усложняет настройку.
Есть достаточно много утилит, которые могут следить за папкой с исходниками и пересобирать приложение. 
Например https://github.com/cosmtrek/air

Ну и для разработки будет гораздо быстрее и удобнее запускать не в докере, билдя каждый раз контейтер, а использовать go run
Похожие вопросы