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