Files
KindClustersDashboard/docker-compose.yml
Sergey Antropoff 8bd44adbb0 Панель: журнал заданий, pull --progress plain, PTY/EIO, старт/стоп в фоне, очистка jobs
- Фоновые stop/start с job_id и poll; отмена с kill; docker pull plain + снятие ANSI
- Лимиты журнала API/буфера; список jobs без progress_log; DELETE /jobs
- UI: опрос чаще, подсказка при пустом логе, кнопка очистки завершённых
2026-04-04 07:04:46 +03:00

55 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Веб-UI kind: том ./clusters, сокет Docker/Podman. Каталог ./app монтируется в контейнер —
# правки Python/шаблонов/static без пересборки образа; uvicorn --reload (см. KIND_K8S_UVICORN_RELOAD).
# Запуск: make docker up
#
# Podman (пример rootless):
# export CONTAINER_SOCKET="$XDG_RUNTIME_DIR/podman/podman.sock"
# make podman up
#
# Автор: Сергей Антропов — https://devops.org.ru
services:
kind-k8s-web:
build:
context: .
dockerfile: Dockerfile
args:
KIND_VERSION: ${KIND_VERSION:-0.24.0}
KUBECTL_VERSION: ${KUBECTL_VERSION:-}
image: kind-k8s-tools:local
volumes:
- ./clusters:/work/clusters
- ${CONTAINER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock
# Локальная разработка: код с хоста сразу в контейнере (пересборка образа не нужна).
- ./app:/opt/kind-k8s/app
# README для /documentation и GET /api/v1/docs/readme (без пересборки образа).
- ./README.md:/opt/kind-k8s/README.md:ro
working_dir: /opt/kind-k8s/app
# Хост по умолчанию 8080: порт 6000 в Chrome/Edge даёт ERR_UNSAFE_PORT; внутри контейнера слушает 6000.
ports:
- "${KIND_K8S_WEB_PORT:-8080}:6000"
environment:
DOCKER_HOST: unix:///var/run/docker.sock
KIND_K8S_IN_CONTAINER: "1"
KIND_K8S_WORKDIR: /work
# По умолчанию включено: kubeconfig с хоста открывает API через проброшенный порт.
KIND_K8S_PATCH_KUBECONFIG: ${KIND_K8S_PATCH_KUBECONFIG:-1}
CONTAINER_CLI: ${CONTAINER_CLI:-docker}
KIND_K8S_SKIP_VERSION_LIST: ${KIND_K8S_SKIP_VERSION_LIST:-}
KIND_K8S_VERSION_LIST_DISPLAY: ${KIND_K8S_VERSION_LIST_DISPLAY:-}
KIND_K8S_HUB_TAGS_MAX_PAGES: ${KIND_K8S_HUB_TAGS_MAX_PAGES:-}
KIND_K8S_DEBUG: ${KIND_K8S_DEBUG:-}
KIND_K8S_JOB_LOG_MAX_LINES: ${KIND_K8S_JOB_LOG_MAX_LINES:-}
# Псевдо-TTY для потоковых команд (0 = pipe). Для docker pull по умолчанию используется --progress=plain без PTY.
KIND_K8S_STREAM_PTY: ${KIND_K8S_STREAM_PTY:-}
KIND_K8S_DOCKER_PULL_PLAIN: ${KIND_K8S_DOCKER_PULL_PLAIN:-}
# Сколько строк журнала отдавать в GET /api/v1/jobs/{id} (по умолчанию 5000 в коде).
KIND_K8S_JOB_API_LOG_MAX_LINES: ${KIND_K8S_JOB_API_LOG_MAX_LINES:-}
KIND_K8S_README_PATH: ${KIND_K8S_README_PATH:-}
KIND_K8S_WAIT_NODES: ${KIND_K8S_WAIT_NODES:-}
KIND_K8S_WAIT_NODES_TIMEOUT_SEC: ${KIND_K8S_WAIT_NODES_TIMEOUT_SEC:-}
KIND_K8S_APP_TITLE: ${KIND_K8S_APP_TITLE:-}
# 1 — uvicorn --reload (изменения в ./app); 0 — один процесс без reload.
KIND_K8S_UVICORN_RELOAD: ${KIND_K8S_UVICORN_RELOAD:-1}
command: ["/opt/kind-k8s/run_uvicorn.sh"]