本地 Docker Compose

目标读者:需要在本机运行 echo-nebula 依赖和 API 的开发者。

infra 仓库负责本地编排。dev-up.sh 会启动 PostgreSQL 和 MinIO。dev-apps-up.sh 会启动这些依赖,以及两个 Go API、Developer Console 和 docs 站点,用于 Alpha E2E。

最小示例

cd ../echo-nebula-infra
./scripts/dev-apps-up.sh
./scripts/wait-for-services.sh
./scripts/e2e-all.sh

默认端口:PostgreSQL 5432,MinIO API 9000,MinIO console 9001,public API 4000,admin API 4100,Developer Console 4173,docs 4200。所有对外发布的服务默认绑定 127.0.0.1

Mailpit 使用 SMTP 1025 和邮件捕获界面 8025

主机发布边界

COMPOSE_BIND_IP 修改统一绑定地址。各服务端口可分别通过 POSTGRES_PORTMINIO_PORTMINIO_CONSOLE_PORTPUBLIC_API_PORTADMIN_API_PORTCONSOLE_PORT DOCS_PORTMAILPIT_SMTP_PORTMAILPIT_HTTP_PORT 覆盖。

修改 MinIO 或 Console 端口时,应让 S3_PUBLIC_ENDPOINT 与浏览器可访问的 MinIO 端点一致,并让 ADMIN_CORS_ALLOWED_ORIGINS 与 Console 的 exact origin 一致。scheme、host 或 port 任一变化都会形成不同的浏览器 Origin。

就绪故障矩阵

/healthz 检查进程存活,/readyz 检查依赖。正常完整栈门禁要求两个 API 的组件状态都为 ready;即使对象存储单独故障时 Admin 仍可返回 200 degraded,也不会把它当作完整栈已就绪。

破坏性恢复测试只能通过隔离入口运行:

./scripts/e2e-readiness-isolated.sh

脚本使用独立端口和 volume 创建唯一命名的 Compose project,注入 PostgreSQL、MinIO 和组合故障,验证两个 API 无需重启即可恢复,把证据写入 reports/readiness/,并且只清理自己的隔离 project。它不会对默认本地 project 执行 lifecycle 命令。

常见错误

下一步

调用 Public API