Pulsar Manager在Linux上应优先使用Docker部署,因其内置Spring Boot+Vue运行时,开箱即用;源码编译易因Node版本、Maven配置等问题失败。必须指定-p 9527:9527、-p 7750:7750和-e SPRING_CONFIGURATION_FILE参数,且首次登录后需手动添加Environment才能显示集群资源。

pulsar-manager 在 Linux 上部署,核心结论是:优先用 Docker 启动,省去 Node.js/Java 环境、编译、前后端分离启动等所有麻烦;只有明确需要定制前端或修改后端逻辑时,才走源码编译路线。
直接用 Docker 启动最稳,别碰源码编译
官方镜像 apachepulsar/pulsar-manager 已内置完整运行时(Spring Boot + Vue),Docker 启动即用。而源码编译(./gradlew build + npm install + 前后端分别 nohup)极易因 Node 版本(如 v10.9.0 已过期)、Maven 仓库镜像、application.properties 路径错位等问题失败。
- Docker 方式只需一条
docker run,端口映射和配置文件挂载清晰可控 - 镜像内嵌 H2 数据库,开箱即用;如需生产级持久化,再单独挂载 PostgreSQL 容器即可
- 避免在宿主机装
node、npm、java、gradle等多套环境,减少冲突点
docker run 必须指定的三个参数
以下命令缺一不可,否则服务起不来或 UI 打不开:
-
-p 9527:9527:这是 Web UI 端口,浏览器访问用,不能省 -
-p 7750:7750:这是 REST API 端口,创建用户、调 Token 都走它,漏掉就卡在登录页 -
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties:必须显式声明配置路径,否则 Spring Boot 找不到配置,日志里会反复报Could not resolve placeholder 'xxx' in value "${xxx}"
完整示例:
docker run -d \ --name pulsar-manager \ -p 9527:9527 \ -p 7750:7750 \ -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \ apachepulsar/pulsar-manager:v0.2.0
创建管理员账号前,先确认 CSRF Token 能取到
执行 curl http://localhost:7750/pulsar-manager/csrf-token 返回空或 404,说明后端没起来,或端口被占、防火墙拦截、容器未就绪。别急着跑 curl -X PUT ... /users/superuser,否则会报 {"error":"Invalid CSRF token"}。
- 先
docker logs pulsar-manager看是否有Started PulsarManagerApplication日志 - 再
curl -v http://localhost:7750/actuator/health检查健康状态是否为{"status":"UP"} - CSRF 接口返回的是纯文本 token,不是 JSON,别用
jq解析——直接赋值给变量就行:CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
第一次登录后必须手动添加 Environment
账号创建成功、UI 登录进去是空白页,不是 bug,是设计如此。pulsar-manager 不自动连接任何 Pulsar 集群,必须人工添加 Environment(即集群接入配置)。
- 点击右上角 “+ New Environment”,Name 填任意标识(如
local-pulsar) -
serviceUrl填 Pulsar Broker 的 HTTP 地址,例如http://192.168.1.96:8080(不是admin端口,也不是brokerServiceUrl的 pulsar:// 地址) - 如果 Pulsar 启用了认证,这里要填带 Basic Auth 的 URL,如
http://admin:123456@192.168.1.96:8080 - 填完保存,刷新页面才能看到租户、namespace 列表
部署本身不难,难在每一步都依赖前一步的精确输出。尤其是 CSRF Token 和 Environment 配置,这两个环节出错,整个 UI 就卡死,但错误提示极不友好。


















