# Веб-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 working_dir: /opt/kind-k8s/app ports: - "${KIND_K8S_WEB_PORT:-6000}: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_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"]