Makefile: compose-build переименована в build (make docker|podman build)
Обновлены README и setup_env_interactive.py.
This commit is contained in:
16
Makefile
16
Makefile
@@ -5,7 +5,7 @@
|
||||
# make docker up | make docker down | make docker logs | …
|
||||
# make podman up | make podman down | …
|
||||
# make docker rebuild / make podman rebuild — образ без кэша и пересоздание контейнера
|
||||
# Без префикса docker/podman цели up/down/logs/ps/compose-build/rebuild/check-docker/kubectl завершатся с подсказкой.
|
||||
# Без префикса docker/podman цели up/down/logs/ps/build/rebuild/check-docker/kubectl завершатся с подсказкой.
|
||||
#
|
||||
# Автор: Сергей Антропов — https://devops.org.ru
|
||||
|
||||
@@ -15,12 +15,12 @@ else ifneq (,$(filter docker,$(MAKECMDGOALS)))
|
||||
COMPOSE := docker compose
|
||||
endif
|
||||
|
||||
.PHONY: help docker podman _require_runtime up down logs ps setup clusters-dir check-docker compose-build rebuild kubectl
|
||||
.PHONY: help docker podman _require_runtime up down logs ps setup clusters-dir check-docker build rebuild kubectl
|
||||
|
||||
KIND_K8S_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
SETUP_ENV_SCRIPT := $(KIND_K8S_DIR)/scripts/setup_env_interactive.py
|
||||
PYTHON ?= python3
|
||||
# При «exec format error» у kind: make docker compose-build COMPOSE_BUILD_FLAGS=--platform linux/arm64
|
||||
# При «exec format error» у kind: make docker build COMPOSE_BUILD_FLAGS=--platform linux/arm64
|
||||
COMPOSE_BUILD_FLAGS ?=
|
||||
# Для цели kubectl: имя кластера и аргументы kubectl после --kubeconfig (по умолчанию: get nodes).
|
||||
CLUSTER ?=
|
||||
@@ -32,7 +32,7 @@ help: ## Справка по целям
|
||||
@echo " make docker down / make podman down"
|
||||
@echo " make docker logs / make podman logs (follow -f)"
|
||||
@echo " make docker ps / make podman ps (статус сервисов)"
|
||||
@echo " make docker compose-build / make podman compose-build"
|
||||
@echo " make docker build / make podman build"
|
||||
@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)"
|
||||
@@ -45,17 +45,17 @@ docker: ## Маркер среды: задайте вторую цель (нап
|
||||
podman: ## Маркер среды: задайте вторую цель (например: make podman up)
|
||||
@:
|
||||
|
||||
# Общая проверка: цели up/down/logs/ps/compose-build/rebuild/check-docker/kubectl — только make docker … / make podman …
|
||||
# Общая проверка: цели up/down/logs/ps/build/rebuild/check-docker/kubectl — только make docker … / make podman …
|
||||
_require_runtime:
|
||||
@if [ -z "$(COMPOSE)" ]; then \
|
||||
echo >&2 "Укажите среду в той же команде, что и цель:"; \
|
||||
echo >&2 " make docker up | make podman up"; \
|
||||
echo >&2 " make docker down | make docker logs | make docker ps | make docker compose-build | make docker rebuild | make docker check-docker | make docker kubectl CLUSTER=…"; \
|
||||
echo >&2 " make docker down | make docker logs | make docker ps | make docker build | make docker rebuild | make docker check-docker | make docker kubectl CLUSTER=…"; \
|
||||
echo >&2 " (или то же с префиксом podman)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
up: _require_runtime clusters-dir compose-build ## (с docker/podman) Поднять веб-UI в фоне
|
||||
up: _require_runtime clusters-dir build ## (с docker/podman) Поднять веб-UI в фоне
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE) up -d kind-k8s-web
|
||||
|
||||
down: _require_runtime ## (с docker/podman) Остановить compose в этом каталоге
|
||||
@@ -91,7 +91,7 @@ kubectl: _require_runtime ## (с docker/podman) kubectl в контейнере:
|
||||
fi
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE) exec kind-k8s-web kubectl --kubeconfig=/work/clusters/$(CLUSTER)/kubeconfig $(KUBECTL_ARGS)
|
||||
|
||||
compose-build: _require_runtime clusters-dir ## (с docker/podman) Собрать образ kind-k8s-tools:local
|
||||
build: _require_runtime clusters-dir ## (с docker/podman) Собрать образ kind-k8s-tools:local
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE) build $(COMPOSE_BUILD_FLAGS)
|
||||
|
||||
rebuild: _require_runtime clusters-dir ## (с docker/podman) Пересобрать образ без кэша и пересоздать контейнер kind-k8s-web
|
||||
|
||||
12
README.md
12
README.md
@@ -118,15 +118,15 @@ docker compose exec kind-k8s-web kubectl --kubeconfig=/work/clusters/<имя>/ku
|
||||
| `make docker down` / `make podman down` | Остановить compose в каталоге репозитория |
|
||||
| `make docker logs` / `make podman logs` | Логи `kind-k8s-web` (stream, `-f`) |
|
||||
| `make docker ps` / `make podman ps` | Статус контейнеров текущего compose-проекта |
|
||||
| `make docker compose-build` / `make podman compose-build` | Собрать образ `kind-k8s-tools:local` |
|
||||
| `make docker build` / `make podman build` | Собрать образ `kind-k8s-tools:local` |
|
||||
| `make docker rebuild` / `make podman rebuild` | Пересборка образа **без кэша** (`build --no-cache`) и пересоздание контейнера (`up -d --force-recreate`) |
|
||||
| `make docker check-docker` / `make podman check-docker` | Проверить выбранный CLI и `compose version` |
|
||||
| `make docker kubectl CLUSTER=…` / `make podman kubectl CLUSTER=…` | **kubectl** в контейнере `kind-k8s-web` (опционально `KUBECTL_ARGS="…"`; по умолчанию `get nodes`). Сервис должен быть **up**. |
|
||||
| `make setup` | Интерактивно создать `.env` (список переменных в `scripts/setup_env_interactive.py`) |
|
||||
| `make clusters-dir` | Создать каталог `clusters/` |
|
||||
| `make docker …` / `make podman …` | Префикс **обязателен** для целей `up`, `down`, `logs`, `ps`, `compose-build`, `rebuild`, `check-docker`, `kubectl` |
|
||||
| `make docker …` / `make podman …` | Префикс **обязателен** для целей `up`, `down`, `logs`, `ps`, `build`, `rebuild`, `check-docker`, `kubectl` |
|
||||
|
||||
Цели `up`, `down`, `logs`, `ps`, `compose-build`, `rebuild`, `check-docker` и `kubectl` **без** `docker`/`podman` в той же команде завершатся с подсказкой.
|
||||
Цели `up`, `down`, `logs`, `ps`, `build`, `rebuild`, `check-docker` и `kubectl` **без** `docker`/`podman` в той же команде завершатся с подсказкой.
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
@@ -154,7 +154,7 @@ docker compose exec kind-k8s-web kubectl --kubeconfig=/work/clusters/<имя>/ku
|
||||
| **`KIND_K8S_JOB_LOG_MAX_LINES`** | приложение | Размер буфера строк журнала фонового задания (`kind create`) для поля `progress_log` в API/UI; по умолчанию **500** (задаётся в коде, при необходимости передайте в compose) |
|
||||
| **`KIND_K8S_README_PATH`** | контейнер / приложение | Абсолютный путь к **README.md** для страницы **`/documentation`**; если пусто — используется `README.md` рядом с каталогом `app/` (в образе: `/opt/kind-k8s/README.md`) |
|
||||
| **`KIND_K8S_WORKDIR`** | локальный запуск | Корень данных на машине разработчика без compose |
|
||||
| **`COMPOSE_BUILD_FLAGS`** | Makefile | Например `make docker compose-build COMPOSE_BUILD_FLAGS=--platform linux/arm64` (то же для **`make docker rebuild`**) |
|
||||
| **`COMPOSE_BUILD_FLAGS`** | Makefile | Например `make docker build COMPOSE_BUILD_FLAGS=--platform linux/arm64` (то же для **`make docker rebuild`**) |
|
||||
|
||||
## Podman (пример rootless)
|
||||
|
||||
@@ -167,7 +167,7 @@ make podman up
|
||||
|
||||
| Путь | Назначение |
|
||||
|------|------------|
|
||||
| `Makefile` | Запуск веб-UI; префикс `docker` или `podman` обязателен; цели `up`, `rebuild`, `compose-build` и др. |
|
||||
| `Makefile` | Запуск веб-UI; префикс `docker` или `podman` обязателен; цели `up`, `rebuild`, `build` и др. |
|
||||
| `scripts/setup_env_interactive.py` | Интерактивное создание `.env` (все ключи и дефолты внутри скрипта) |
|
||||
| `scripts/run_uvicorn.sh` | Точка входа контейнера: uvicorn с опциональным `--reload` |
|
||||
| `Dockerfile` | Образ: kind, kubectl, docker-cli, FastAPI |
|
||||
@@ -202,4 +202,4 @@ make podman up
|
||||
- На **Windows** без WSL удобнее WSL2 + Docker Desktop.
|
||||
- **kubectl** на хосте **не обязателен**: используйте веб-UI или **`make docker kubectl`** / **`make podman kubectl`** (см. выше).
|
||||
- История заданий создания в UI/API хранится в памяти (до **200** записей); после перезапуска контейнера очищается.
|
||||
- При **`exec format error`** у kind пересоберите образ: `make docker rebuild COMPOSE_BUILD_FLAGS=--platform linux/arm64` (или `make podman …`, или `compose-build` без `--no-cache`, или `linux/amd64`).
|
||||
- При **`exec format error`** у kind пересоберите образ: `make docker rebuild COMPOSE_BUILD_FLAGS=--platform linux/arm64` (или `make podman …`, или **`make docker build`** без `--no-cache`, или `linux/amd64`).
|
||||
|
||||
@@ -139,7 +139,7 @@ _SETUP_PROMPTS: tuple[_EnvPrompt, ...] = (
|
||||
_EnvPrompt(
|
||||
"# --- Только Makefile (не переменные окружения compose) ---",
|
||||
"COMPOSE_BUILD_FLAGS",
|
||||
"Доп. флаги для «make docker compose-build», например --platform linux/arm64.",
|
||||
"Доп. флаги для «make docker build», например --platform linux/arm64.",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user