📣 【Workshop 上海站 7月10日】Coco AI - 赋能企业搜索,打造专属智能助手 👉 : 活动免费,立即报名
一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境
Docker
Easyserach
Console
DevOps
Automation
2025-06-15

系列回顾与引言 #

在我们的 INFINI 本地环境搭建系列博客中:

  1. 第一篇《 搭建持久化的 INFINI Console 与 Easysearch 容器环境》,我们深入探讨了如何使用基础的 docker run 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。
  2. 第二篇《 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。

虽然 Docker Compose 已经极大地提升了便利性,但在实际的开发和测试流程中,我们可能还需要处理版本选择、初始配置复制、多节点配置、指标采集开启等更细致的需求。为了进一步封装这些复杂性,提供真正的一键式体验,我们精心打造了一个强大的 Shell 脚本 start-local

本篇文章将带你领略 start-local 的魅力,看看它是如何将 Console 和 Easysearch (本文仍以 Console 1.29.6 和 Easysearch 1.13.0 为例) 的本地环境搭建与管理提升到一个全新的便捷高度——只需一行命令,即可拥有一个功能完备、数据持久的本地 INFINI Console 运行环境。

start-local:您的 INFINI Console 本地环境瑞士军刀 #

start-local 脚本(灵感来源于 elastic/start-local)集成了环境搭建的诸多最佳实践,旨在提供极致的易用性。它在后台仍然依赖 Docker 和 Docker Compose,但为用户屏蔽了底层的复杂配置细节。

核心功能:

  • 智能版本管理:自动获取 INFINI Console 和 Easysearch 的最新稳定版(或你指定的版本)作为默认镜像标签。
  • 动态配置生成:根据用户提供的命令行选项(如节点数、密码、版本等)自动生成 .envdocker-compose.yml 文件。
  • 初始配置自动处理:在首次启动或本地配置目录不存在时,自动从 Docker 镜像中提取并设置初始配置文件。
  • 一键式生命周期管理:通过简单的命令 (up, down, logs, clean) 管理整个应用的启动、停止、日志查看和彻底清理。
  • 持久化内置:默认将所有关键数据(配置、索引数据、日志)持久化到本地的 ./startlocal 目录(可配置)。
  • 集成 Agent 指标采集:通过 --metrics-agent 选项,轻松启用 Easysearch 的指标收集并自动配置其指向 INFINI Console。
  • 跨平台设计:主要针对 Linux 和 macOS 环境。

如何获取和使用 start-local #

获取和执行 start-local 最便捷的方式是通过 curl 将脚本内容直接通过管道传递给 sh 执行:

# 启动默认配置 (Console + 1 个 Easysearch 节点)
curl -fsSL http://get.infini.cloud/start-local | sh -s

# 想要更丰富的体验?试试这个:
# 启动 3 个 Easysearch 节点,设置密码,并开启 Agent 指标采集
curl -fsSL http://get.infini.cloud/start-local | sh -s -- up --nodes 3 --password "MyDevPass123." --metrics-agent

(请将 http://get.infini.cloud/start-local 替换为脚本的实际官方获取地址)

sh -s -- 部分确保脚本从标准输入读取,并且后续参数能正确传递给脚本。

脚本执行后,所有操作文件和持久化数据都会在当前目录下的 ./startlocal (默认) 子目录中创建和管理。

start-local 命令和选项概览 #

通过 help 命令可以查看所有支持的功能:

curl -fsSL http://get.infini.cloud/start-local | sh -s -- help

以下是一些最常用的命令和选项:

命令 (COMMAND):

  • up: 核心命令。创建并启动定义的服务。自动处理初始配置。
  • down: 停止服务,移除容器、网络和相关匿名卷。本地持久化数据不受影响。
  • logs [服务名...]: 实时查看指定服务或所有服务的日志。
  • clean: 彻底清理。执行 down 后,删除整个工作目录 (./startlocal 及其所有内容)。
  • help: 显示帮助信息。

常用选项 (OPTIONS) (主要用于 up 命令):

  • -cv TAG, --console-version TAG: 指定 Console 镜像版本 (例如 1.29.6)。
  • -ev TAG, --easysearch-version TAG: 指定 Easysearch 镜像版本 (例如 1.13.0)。
  • -n N, --nodes N: Easysearch 节点数量 (默认 1)。
  • -p PASSWORD, --password PASSWORD: Easysearch admin 用户初始密码 (默认 ShouldChangeme123.)。
  • --services s1[,s2,...]: 指定要启动的服务 (可选值: console, easysearch)。如果未指定,默认启动两者。
  • --metrics-agent: 启用 Easysearch 指标收集代理。
  • -wd PATH, --work-dir PATH: 自定义工作目录,替代默认的 ./startlocal

实际操作示例 #

让我们通过几个示例来感受 start-local 的便捷:

1. 启动一个标准的开发环境 (Console + 1 个 Easysearch 节点,开启指标)

curl -fsSL http://get.infini.cloud/start-local | sh -s

脚本会自动完成所有后台工作:检查依赖、确定版本、创建工作目录、生成配置文件、复制初始配置、生成 docker-compose.yml,最后启动服务并打印访问地址。

2. 启动一个 3 节点的 Easysearch 集群,并指定版本和密码

curl -fsSL http://get.infini.cloud/start-local | sh -s -- up \
--nodes 3 \
--password "ComplexP@ssw0rd." \
--console-version 1.29.6 \
--easysearch-version 1.13.0 \
--services easysearch,console

脚本会智能处理多节点配置和持久化目录结构。

3. 查看所有服务的日志

curl -fsSL http://get.infini.cloud/start-local | sh -s -- logs

4. 停止运行环境(慎重操作)

curl -fsSL http://get.infini.cloud/start-local | sh -s -- down

这将停止运行的所有容器。

4. 删除运行环境(慎重操作)

curl -fsSL http://get.infini.cloud/start-local | sh -s -- clean

这将移除所有相关的 Docker 资源以及本地的 ./startlocal 目录。

持久化:数据安全无忧 #

start-local 脚本的核心设计之一就是确保数据的持久化。所有重要的配置、数据和日志都会映射到宿主机的 ./startlocal (或你通过 -wd 指定的) 目录下的结构化子目录中:

  • Console: ./startlocal/console/{config,data,logs}/
  • Easysearch (单节点): ./startlocal/easysearch/{config,data,logs}/
  • Easysearch (多节点): ./startlocal/easysearch/node-X/{config,data,logs}/

这意味着你可以随时 downup 你的环境,而不用担心丢失任何工作。

访问服务 #

启动成功后,脚本会打印出访问地址:

  • INFINI Console: http://localhost:9000 (默认主机端口)
  • INFINI Easysearch: https://localhost:9200 (默认主机端口,用户 admin,密码为你设置的或默认值)

总结:从复杂到简单,专注核心价值 #

从繁琐的 docker run 命令,到结构化的 docker-compose.yml,再到如今便捷的 start-local 脚本,我们一步步简化了 INFINI 本地环境的搭建和管理过程。start-local 将所有底层的复杂性封装起来,让你能够通过一行命令就拥有一个功能齐全、数据持久的本地环境,从而更专注于应用本身的功能测试、开发和学习。

这正是良好工具的价值所在——让复杂的事情变简单,让我们能更高效地创造。

希望这个 start-local 脚本能成为你日常工作中得力的助手!如果你有任何建议或发现问题,欢迎通过项目仓库反馈。

标签
Coco AI x
Easysearch x
Gateway x
Console x
Loadgen x
开源 x