diff --git a/AGENTS.md b/AGENTS.md index 1597737..b18a147 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -62,9 +62,10 @@ Two independent ways to ship the service: собирает образ из `Dockerfile` (многоступенчатая сборка из исходников) и пушит в реестр; buckland тянет образ оттуда. 2. **Локальная сборка (umbar)** — `Dockerfile.deploy` упаковывает готовый - бинарь (`task build`). Плейбук `umbar/playbook-trackers.yml` собирает бинарь - на control-хосте, доставляет его + `Dockerfile.deploy` на сервер и собирает - образ там (Go-тулчейн на сервере не нужен). Так же устроен `jellybit`. + бинарь (`task build`). Плейбук `umbar/playbook-trackers.yml` собирает + **полный образ локально** на control-хосте (`task image`, роль `app_image`) + и доставляет его на сервер через `docker save`/`load`; `docker build` и + Go-тулчейн на сервере не нужны. Так же устроен `jellybit`. ## Architecture diff --git a/Dockerfile.deploy b/Dockerfile.deploy index 2446fd9..4bd576d 100644 --- a/Dockerfile.deploy +++ b/Dockerfile.deploy @@ -1,5 +1,8 @@ # Упаковка готового статического бинаря в минимальный образ — деплой на umbar -# (см. ../umbar/playbook-trackers.yml). Бинарь собирается снаружи: +# (см. ../umbar/playbook-trackers.yml). Образ собирается целиком локально на +# control-хосте через `task image` (роль app_image в umbar) и едет на сервер +# через docker save/load; docker build на сервере не выполняется. Бинарь +# собирается снаружи: # CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o trackers . (task build) # distroless/static несёт CA-сертификаты (HTTPS к источникам списков трекеров). # Пользователь задаётся в compose (user: "1000:1000"). @@ -7,7 +10,7 @@ # Тома (см. compose): /config (ro, рендерится плейбуком) + /cache (пишет сам). # # Канонический Dockerfile (многоступенчатая сборка из исходников) живёт рядом и -# используется CI (Yandex Registry) — этот файл нужен только серверной сборке. +# используется CI (Yandex Registry) — отдельный путь для реестра. FROM gcr.io/distroless/static-debian12 COPY trackers /usr/local/bin/trackers diff --git a/Taskfile.yml b/Taskfile.yml index 02c5f0b..939c9bc 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -37,10 +37,10 @@ tasks: - go mod tidy image: - desc: 'Docker-образ из готового бинаря (Dockerfile.deploy, как на сервере umbar)' + desc: 'Docker-образ из готового бинаря (Dockerfile.deploy). Тег из $BUILD_ID (по умолчанию dev; роль app_image umbar передаёт свой)' deps: [build] cmds: - - docker build -f Dockerfile.deploy -t trackers:dev . + - docker build -f Dockerfile.deploy -t {{.BINARY}}:${BUILD_ID:-dev} . clean: desc: Удалить собранный бинарь