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