docs: публичный образ inecs/kind-cluster-dashboard:v1.0.0 в быстром старте и hub-compose
Синхронизация с дефолтами Makefile (DOCKERHUB_REPO, RELEASE_TAG). Исправлен пробел в DOCKERHUB_REPO ?=.
This commit is contained in:
@@ -53,13 +53,25 @@ COMPOSE_DOCKER_OVERRIDES ?=
|
||||
COMPOSE_FILE_ARGS ?=
|
||||
PODMAN_COMPOSE_ENV_FILE ?=
|
||||
|
||||
.PHONY: help docker podman _require_runtime _podman_env_override up down restart logs ps setup clusters-dir check-docker build rebuild kubectl probe-sockets
|
||||
.PHONY: help docker podman _require_runtime _podman_env_override up down restart logs ps setup clusters-dir check-docker build rebuild kubectl probe-sockets release
|
||||
# При «exec format error» у kind: make docker build COMPOSE_BUILD_FLAGS=--platform linux/arm64
|
||||
COMPOSE_BUILD_FLAGS ?=
|
||||
# Для цели kubectl: имя кластера и аргументы kubectl после --kubeconfig (по умолчанию: get nodes).
|
||||
CLUSTER ?=
|
||||
KUBECTL_ARGS ?= get nodes
|
||||
|
||||
# Сборка и push в Docker Hub (make release): linux/amd64 (x86_64) и linux/arm64 (Apple Silicon и др.).
|
||||
# linux/386 для kind в образе не поддерживается официальными бинарниками.
|
||||
# Перед push make release вызывает docker login docker.io (сохранение в ~/.docker/config.json). Строка [auth] … token у BuildKit — нормальный обмен по протоколу реестра после входа.
|
||||
# CI без интерактива: SKIP_RELEASE_DOCKER_LOGIN=1, если docker login уже выполнен или настроен credential helper.
|
||||
RELEASE_PLATFORMS ?= linux/amd64,linux/arm64
|
||||
RELEASE_TAG ?= v1.0.0
|
||||
DOCKERHUB_REPO ?= inecs/kind-cluster-dashboard
|
||||
KIND_VERSION ?= 0.24.0
|
||||
HELM_VERSION ?= v3.16.3
|
||||
KUBECTL_VERSION ?=
|
||||
SKIP_RELEASE_DOCKER_LOGIN ?=
|
||||
|
||||
help: ## Справка по целям
|
||||
@echo "Веб-UI kind — только с выбором Docker или Podman в одной команде с целью:"
|
||||
@echo " make docker up или make podman up → http://127.0.0.1:\$${KIND_K8S_WEB_PORT:-8080}"
|
||||
@@ -71,6 +83,7 @@ help: ## Справка по целям
|
||||
@echo " make docker rebuild / make podman rebuild (build --no-cache + up --force-recreate)"
|
||||
@echo " make docker check-docker / make podman check-docker"
|
||||
@echo " make docker kubectl CLUSTER=<имя> — kubectl в контейнере (см. KUBECTL_ARGS, по умолчанию get nodes)"
|
||||
@echo " make release — multi-arch buildx и push (по умолчанию DOCKERHUB_REPO=inecs/kind-cluster-dashboard, RELEASE_TAG=v1.0.0; см. README)"
|
||||
@echo "Без установки Compose: make setup, make clusters-dir (python3 для setup)."
|
||||
@grep -E '^[a-zA-Z0-9_-]+:.*?##' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?##"} {printf " \033[36m%-28s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
@@ -150,3 +163,29 @@ build: _require_runtime _podman_env_override clusters-dir ## (с docker/podman)
|
||||
|
||||
rebuild: _require_runtime _podman_env_override clusters-dir ## (с docker/podman) Пересобрать образ без кэша и пересоздать контейнер kind-k8s-web
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE_PODMAN_ENV) $(COMPOSE_DOCKER_OVERRIDES) $(COMPOSE) $(COMPOSE_FILE_ARGS) $(PODMAN_COMPOSE_ENV_FILE) build --no-cache $(COMPOSE_BUILD_FLAGS) && $(COMPOSE_PODMAN_ENV) $(COMPOSE_DOCKER_OVERRIDES) $(COMPOSE) $(COMPOSE_FILE_ARGS) $(PODMAN_COMPOSE_ENV_FILE) up -d --force-recreate kind-k8s-web
|
||||
|
||||
# Публикация образа в Docker Hub (buildx, --push). Сначала интерактивный docker login (или SKIP_RELEASE_DOCKER_LOGIN=1).
|
||||
release: ## Multi-arch (amd64+arm64) сборка и push [DOCKERHUB_REPO=inecs/kind-cluster-dashboard] [RELEASE_TAG=v1.0.0] … [SKIP_RELEASE_DOCKER_LOGIN=1]
|
||||
@if [ -z "$(strip $(DOCKERHUB_REPO))" ]; then \
|
||||
echo >&2 "Задайте DOCKERHUB_REPO=<namespace>/<имя_репозитория> (в Makefile задано по умолчанию inecs/kind-cluster-dashboard)."; \
|
||||
echo >&2 "Платформы: $(RELEASE_PLATFORMS) (amd64 — ПК x86_64, arm64 — Apple Silicon и серверы ARM)."; \
|
||||
echo >&2 "Перед push make release выполнит: docker login docker.io (или задайте SKIP_RELEASE_DOCKER_LOGIN=1)."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@command -v docker >/dev/null 2>&1 || { echo >&2 "Нужен docker в PATH."; exit 1; }
|
||||
@docker buildx version >/dev/null 2>&1 || { echo >&2 "Нужен Docker Buildx (docker buildx version)."; exit 1; }
|
||||
@if [ "$(strip $(SKIP_RELEASE_DOCKER_LOGIN))" != "1" ]; then \
|
||||
echo "Вход в Docker Hub: docker login docker.io (учётные данные в ~/.docker/config.json; дальше BuildKit получит token у реестра — это норма)."; \
|
||||
docker login docker.io || { echo >&2 "docker login docker.io завершился с ошибкой."; exit 1; }; \
|
||||
fi
|
||||
@docker buildx inspect kind-k8s-release >/dev/null 2>&1 || docker buildx create --name kind-k8s-release --driver docker-container --use
|
||||
@docker buildx use kind-k8s-release
|
||||
cd "$(KIND_K8S_DIR)" && docker buildx build \
|
||||
--platform "$(RELEASE_PLATFORMS)" \
|
||||
--push \
|
||||
-t "$(DOCKERHUB_REPO):$(RELEASE_TAG)" \
|
||||
--build-arg "KIND_VERSION=$(KIND_VERSION)" \
|
||||
--build-arg "HELM_VERSION=$(HELM_VERSION)" \
|
||||
--build-arg "KUBECTL_VERSION=$(KUBECTL_VERSION)" \
|
||||
-f Dockerfile \
|
||||
.
|
||||
|
||||
Reference in New Issue
Block a user