docs: публичный образ inecs/kind-cluster-dashboard:v1.0.0 в быстром старте и hub-compose
Синхронизация с дефолтами Makefile (DOCKERHUB_REPO, RELEASE_TAG). Исправлен пробел в DOCKERHUB_REPO ?=.
This commit is contained in:
133
README.md
133
README.md
@@ -66,6 +66,139 @@
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### Готовый образ с Docker Hub (без сборки, без файла `.env`)
|
||||
|
||||
**Опубликованный образ:** **`inecs/kind-cluster-dashboard:v1.0.0`** (соответствует значениям по умолчанию в `Makefile`: `DOCKERHUB_REPO=inecs/kind-cluster-dashboard`, `RELEASE_TAG=v1.0.0`). Все теги: [hub.docker.com/r/inecs/kind-cluster-dashboard/tags](https://hub.docker.com/r/inecs/kind-cluster-dashboard/tags).
|
||||
|
||||
Сборка и отправка в Docker Hub (для сопровождения образа): **linux/amd64** (ПК **x86_64**) и **linux/arm64** (**Apple Silicon** и прочий ARM). Образ **linux/386** (32-bit x86) для **kind** официальными бинарниками не поставляется, поэтому в релиз не входит.
|
||||
|
||||
```bash
|
||||
docker login
|
||||
# По умолчанию пушит inecs/kind-cluster-dashboard:v1.0.0 (см. Makefile):
|
||||
make release
|
||||
# Или явно: make release DOCKERHUB_REPO=inecs/kind-cluster-dashboard RELEASE_TAG=v1.0.0
|
||||
# Необязательно: KIND_VERSION=0.24.0 HELM_VERSION=v3.16.3 KUBECTL_VERSION=v1.32.0
|
||||
```
|
||||
|
||||
Другой образ/тег задайте в shell: **`KIND_K8S_HUB_IMAGE=логин/репозиторий:тег`** при вызове compose (в YAML ниже то же через подстановку).
|
||||
|
||||
```bash
|
||||
mkdir -p clusters
|
||||
# Docker (файл в репозитории: compose/docker-compose.hub.docker.yml; образ по умолчанию — v1.0.0):
|
||||
docker compose -f compose/docker-compose.hub.docker.yml up -d
|
||||
|
||||
# Другой тег: KIND_K8S_HUB_IMAGE=inecs/kind-cluster-dashboard:latest docker compose -f compose/docker-compose.hub.docker.yml up -d
|
||||
|
||||
# Podman — путь к API-сокету только через переменные окружения (не через .env):
|
||||
export CONTAINER_SOCKET="${XDG_RUNTIME_DIR}/podman/podman.sock"
|
||||
podman compose -f compose/docker-compose.hub.podman.yml up -d
|
||||
```
|
||||
|
||||
Браузер: **http://127.0.0.1:8080** (в примерах ниже публикация **8080:6000**; при необходимости поменяйте в YAML).
|
||||
|
||||
Ниже — **полные** примеры `docker-compose`: все переменные **`environment`** заданы явно теми же значениями, что использует приложение по умолчанию (см. `docker-compose.yml`, `app/core/*.py`, `app/kubeconfig_patch.py`). **`.env` не нужен**. Актуальные копии — в [`compose/docker-compose.hub.docker.yml`](compose/docker-compose.hub.docker.yml) и [`compose/docker-compose.hub.podman.yml`](compose/docker-compose.hub.podman.yml).
|
||||
|
||||
**Docker** — вставьте в `docker-compose.yml` (или сохраните как отдельный файл):
|
||||
|
||||
```yaml
|
||||
services:
|
||||
kind-k8s-web:
|
||||
image: ${KIND_K8S_HUB_IMAGE:-inecs/kind-cluster-dashboard:v1.0.0}
|
||||
container_name: kind-clusters-dashboard
|
||||
user: "0:0"
|
||||
volumes:
|
||||
- ${KIND_K8S_CLUSTERS_DIR:-./clusters}:/work/clusters
|
||||
- ${CONTAINER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock
|
||||
ports:
|
||||
- "8080:6000"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
environment:
|
||||
HOME: /root
|
||||
DOCKER_HOST: unix:///var/run/docker.sock
|
||||
KIND_K8S_IN_CONTAINER: "1"
|
||||
KIND_K8S_WORKDIR: /work
|
||||
KIND_K8S_PATCH_KUBECONFIG: "1"
|
||||
KIND_K8S_KUBECONFIG_CLIENT_HOST: localhost
|
||||
KIND_K8S_KUBECONFIG_TLS_SERVER_NAME: localhost
|
||||
KIND_K8S_APISERVER_GATEWAY_HOST: host.docker.internal
|
||||
CONTAINER_CLI: docker
|
||||
KIND_K8S_SKIP_VERSION_LIST: "0"
|
||||
KIND_K8S_VERSION_LIST_DISPLAY: "50"
|
||||
KIND_K8S_HUB_TAGS_MAX_PAGES: "120"
|
||||
KIND_K8S_DEBUG: "0"
|
||||
KIND_K8S_JOB_LOG_MAX_LINES: "2500"
|
||||
KIND_K8S_STREAM_PTY: "1"
|
||||
KIND_K8S_DOCKER_PULL_PLAIN: "1"
|
||||
KIND_K8S_JOB_API_LOG_MAX_LINES: "5000"
|
||||
KIND_K8S_JOBS_JSON: /work/clusters/kind_k8s_jobs.json
|
||||
KIND_K8S_README_PATH: /opt/kind-k8s/README.md
|
||||
KIND_K8S_WAIT_NODES: "1"
|
||||
KIND_K8S_WAIT_NODES_TIMEOUT_SEC: "300"
|
||||
KIND_K8S_HELM_TIMEOUT_SEC: "900"
|
||||
KIND_K8S_HELM_VERSIONS_CACHE_SEC: "600"
|
||||
KIND_K8S_HELM_VERSIONS_MAX: "80"
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_ENTRIES: "500"
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_LOG_LINES: "2000"
|
||||
KIND_K8S_HELM_ADDON_LOG_MAX_ENTRIES: "500"
|
||||
KIND_K8S_APP_TITLE: "Kind Clusters Dashboard"
|
||||
KIND_K8S_UVICORN_RELOAD: "0"
|
||||
working_dir: /opt/kind-k8s/app
|
||||
command: ["/opt/kind-k8s/run_uvicorn.sh"]
|
||||
```
|
||||
|
||||
**Podman** — перед запуском: **`export CONTAINER_SOCKET="$XDG_RUNTIME_DIR/podman/podman.sock"`** (или фактический путь к `podman.sock`). При **EACCES** на сокет подберите **`user`** / **UID:GID** как в основном [`docker-compose.yml`](docker-compose.yml) и [`Makefile`](Makefile) для `make podman up`.
|
||||
|
||||
```yaml
|
||||
services:
|
||||
kind-k8s-web:
|
||||
image: ${KIND_K8S_HUB_IMAGE:-inecs/kind-cluster-dashboard:v1.0.0}
|
||||
container_name: kind-clusters-dashboard
|
||||
userns_mode: keep-id
|
||||
user: "0:0"
|
||||
volumes:
|
||||
- ${KIND_K8S_CLUSTERS_DIR:-./clusters}:/work/clusters
|
||||
- ${CONTAINER_SOCKET}:/run/podman/podman.sock
|
||||
ports:
|
||||
- "8080:6000"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
environment:
|
||||
HOME: /tmp
|
||||
DOCKER_HOST: unix:///run/podman/podman.sock
|
||||
KIND_K8S_IN_CONTAINER: "1"
|
||||
KIND_K8S_WORKDIR: /work
|
||||
KIND_K8S_PATCH_KUBECONFIG: "1"
|
||||
KIND_K8S_KUBECONFIG_CLIENT_HOST: localhost
|
||||
KIND_K8S_KUBECONFIG_TLS_SERVER_NAME: localhost
|
||||
KIND_K8S_APISERVER_GATEWAY_HOST: host.docker.internal
|
||||
CONTAINER_CLI: podman
|
||||
KIND_K8S_SKIP_VERSION_LIST: "0"
|
||||
KIND_K8S_VERSION_LIST_DISPLAY: "50"
|
||||
KIND_K8S_HUB_TAGS_MAX_PAGES: "120"
|
||||
KIND_K8S_DEBUG: "0"
|
||||
KIND_K8S_JOB_LOG_MAX_LINES: "2500"
|
||||
KIND_K8S_STREAM_PTY: "1"
|
||||
KIND_K8S_DOCKER_PULL_PLAIN: "1"
|
||||
KIND_K8S_JOB_API_LOG_MAX_LINES: "5000"
|
||||
KIND_K8S_JOBS_JSON: /work/clusters/kind_k8s_jobs.json
|
||||
KIND_K8S_README_PATH: /opt/kind-k8s/README.md
|
||||
KIND_K8S_WAIT_NODES: "1"
|
||||
KIND_K8S_WAIT_NODES_TIMEOUT_SEC: "300"
|
||||
KIND_K8S_HELM_TIMEOUT_SEC: "900"
|
||||
KIND_K8S_HELM_VERSIONS_CACHE_SEC: "600"
|
||||
KIND_K8S_HELM_VERSIONS_MAX: "80"
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_ENTRIES: "500"
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_LOG_LINES: "2000"
|
||||
KIND_K8S_HELM_ADDON_LOG_MAX_ENTRIES: "500"
|
||||
KIND_K8S_APP_TITLE: "Kind Clusters Dashboard"
|
||||
KIND_K8S_UVICORN_RELOAD: "0"
|
||||
working_dir: /opt/kind-k8s/app
|
||||
command: ["/opt/kind-k8s/run_uvicorn.sh"]
|
||||
```
|
||||
|
||||
### Запуск из репозитория (локальная сборка образа)
|
||||
|
||||
```bash
|
||||
# Из корня клонированного репозитория Kind Clusters Dashboard (рядом с Makefile):
|
||||
make setup # опционально: интерактивно создать .env (Enter — дефолты из скрипта)
|
||||
|
||||
Reference in New Issue
Block a user