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