Добавил сборку на локальном хосте

This commit is contained in:
2026-06-15 10:57:11 +03:00
parent e4854beeca
commit 7c59682628
4 changed files with 87 additions and 0 deletions
+18
View File
@@ -20,6 +20,12 @@ This is an educational project written in Go 1.26.
go build -o trackers ./main.go
```
Через [Task](https://taskfile.dev) (`task --list` — полный список):
```bash
task build # статический бинарь linux/amd64 (CGO_ENABLED=0) для сервера
task image # docker-образ из готового бинаря (Dockerfile.deploy)
```
### Run
```bash
go run main.go -config config.toml
@@ -48,6 +54,18 @@ Uses goreleaser for cross-platform builds (Linux amd64/arm64):
goreleaser build --snapshot --clean
```
## Deploy paths
Two independent ways to ship the service:
1. **Yandex Container Registry (buckland)** — CI (`.gitea/workflows/release.yml`)
собирает образ из `Dockerfile` (многоступенчатая сборка из исходников) и
пушит в реестр; buckland тянет образ оттуда.
2. **Локальная сборка (umbar)**`Dockerfile.deploy` упаковывает готовый
бинарь (`task build`). Плейбук `umbar/playbook-trackers.yml` собирает бинарь
на control-хосте, доставляет его + `Dockerfile.deploy` на сервер и собирает
образ там (Go-тулчейн на сервере не нужен). Так же устроен `jellybit`.
## Architecture
**Single File Design**: All code is in `main.go` with clear functional separation: