首页/新闻资讯/正文详情

SuperPlane 多实例本地开发指南:一套仓库端口映射并行运行多个开发环境

发布时间:2026/9/28 2:57:50 来源:云帆数科 栏目:资讯中心
SuperPlane 多实例本地开发指南:一套仓库端口映射并行运行多个开发环境
【免费下载链接】superplaneOpen source factory for one-shot engineering项目地址https://gitcode.com/gh_mirrors/su/superplane点击查看免费下载导读SuperPlane 是一个一次投入、一次成型one-shot engineering的开源工厂级工程平台其本地开发环境基于 Docker Compose 编排默认将所有服务端口固定在同一组默认值上。本文讲解如何在单机上一字排开运行两套甚至五套 SuperPlane 开发实例例如superplane/与superplane2/并存通过每个仓库根目录下的.env文件覆盖端口映射与基础 URL实现互不干扰地并行调试 API、Vite 前端、Storybook、OTEL 观测与数据库工具。读完本文你将掌握多实例端口矩阵的完整配置方法、make dev.up/make dev.server的启动链路以及如何利用make db.snapshot/make db.restore让第二个实例跳过 owner 设置与 GitHub 连接直接复用已完成初始化的本地数据库。多实例方案的原理每个仓库一份 .envSuperPlane 的开发 Docker Compose 配置docker-compose.dev.yml在定义服务时大量使用${VAR:-default}形式的变量插值。Docker Compose 会自动读取仓库根目录下的.env文件参与插值因此每个克隆出来的仓库副本都可以拥有自己独立的端口映射互不影响。这正是多实例并行得以成立的基础SuperPlane 官方在仓库根目录提供了专用的模板文件 .env.multi-instance.example其中预置了 Instance A 到 Instance E 五套完整的端口方案。你不需要修改任何 Compose 文件只需要在每个仓库里把模板复制为.envcp .env.multi-instance.example .env在第一个仓库中取消Instance A区块的注释在第二个仓库中取消Instance B区块的注释第三、四、五个仓库依次对应 C、D、E像平时一样启动每个仓库例如make dev.up后执行make dev.server。启动完成后两套实例的 UI 分别位于Instance Ahttp://localhost:8000Instance Bhttp://localhost:8001说明.env不是env_file。docker-compose.dev.yml 中的注释明确指出它只参与 Compose 的变量插值只有 Compose 文件里显式引用的变量才会生效。所以多实例方案无需担心.env中的无关变量被注入容器。完整端口映射表两实例对照下表汇总了官方模板中 Instance A 与 Instance B 的端口对照C/D/E 实例以此类推每套整体偏移用途环境变量示例 A示例 B公共 APIUI 入口PUBLIC_API_PORT80008001Vite 开发服务器VITE_DEV_PORT51735174Vite 预览VITE_PREVIEW_PORT41734174StorybookSTORYBOOK_PORT60066007OTEL gRPCOTEL_GRPC_PORT43174319OTEL HTTPOTEL_HTTP_PORT43184320PgWebPGWEB_PORT80818082RabbitMQRABBITMQ_PORT56725673RabbitMQ 管理 UIRABBITMQ_MANAGEMENT_PORT1567215673pprofPPROF_PORT60606061Base URLBASE_URLhttp://localhost:8000http://localhost:8001Webhooks 基础 URLWEBHOOKS_BASE_URLhttp://localhost:8000http://localhost:8001从源码看这些端口在 docker-compose.dev.yml 中均有对应的插值引用例如app服务通过ports映射${VITE_DEV_PORT:-5173}、${VITE_PREVIEW_PORT:-4173}、${STORYBOOK_PORT:-6006}、${PUBLIC_API_PORT:-8000}、${PPROF_PORT:-6060}otel服务映射${OTEL_GRPC_PORT:-4317}与${OTEL_HTTP_PORT:-4318}pgweb服务映射${PGWEB_PORT:-8081}rabbitmq服务映射${RABBITMQ_PORT:-5672}与${RABBITMQ_MANAGEMENT_PORT:-15672}。因此.env中任一端口变量的覆盖都会直接反映到容器端口绑定上。Instance B 的 RabbitMQ 使用5673、OTEL gRPC 使用4319等都刻意与默认值错开避免宿主机端口冲突。关键变量逐项拆解PUBLIC_API_PORTUI 与 API 的统一入口PUBLIC_API_PORT是这套端口体系中最核心的变量。在 Compose 中它同时驱动app容器的端口映射以及PORT: ${PORT:-${PUBLIC_API_PORT:-8000}}API_PORT: ${API_PORT:-${PUBLIC_API_PORT:-8000}}也就是说PORT与API_PORT默认都跟随PUBLIC_API_PORT只有当 app 服务器与 Vite 代理需要刻意分离时才需要单独覆盖它们参考 .env.example 中的说明。BASE_URL 与 WEBHOOKS_BASE_URL链接与回调的来源BASE_URL默认http://localhost:8000用于浏览器内链接与外部回调地址WEBHOOKS_BASE_URLCompose 内默认http://app:8000本机开发建议覆盖为宿主机可达地址用于发给外部系统的 webhook 回调。docker-compose.dev.yml 中明确提示当通过隧道例如ngrok http 8000访问时应在.env中把WEBHOOKS_BASE_URL设置为公网隧道地址不要带尾斜杠。多实例场景下两套实例的这两个 URL 必须与各自的PUBLIC_API_PORT保持一致否则回调会打到错误的实例。此外还有一个容易遗漏的联动项ALLOWED_WS_ORIGINSCompose 默认http://localhost:8000控制 WebSocket 的跨域白名单.env.example 建议在修改PUBLIC_API_PORT时同步对齐BASE_URL、WEBHOOKS_BASE_URL与ALLOWED_WS_ORIGINS。OTEL 双端口gRPC 与 HTTP 分离SuperPlane 开发环境内置 OpenTelemetry Collectorotel/opentelemetry-collector-contrib:0.110.0dev profile同时暴露 gRPCOTEL_GRPC_PORT默认 4317与 HTTPOTEL_HTTP_PORT默认 4318两个接收端口。app 容器的 exporter 指向http://otel:4317gRPC 协议。多实例时两套 Collector 使用不同端口即可独立采集遥测数据。pprof本地性能剖析当PPROF_ENABLEDyesdev Compose 默认开启时Go 服务会在http://localhost:${PPROF_PORT}/debug/pprof/暴露 CPU、heap、goroutine、block、mutex 等剖析端点详见 .env.example 与 profiling 文档 的说明该端点无鉴权仅适合本地开发。多实例时每个实例分配独立端口如 A6060、B6061方便分别抓取剖析数据。PgWeb浏览器里的数据库管理PgWebsosedoff/pgwebdev profile通过DATABASE_URL: postgres://postgres:the-cake-is-a-liedb:5432/superplane_dev?sslmodedisable直连本 Compose 栈内的 Postgres。每套实例的PGWEB_PORT独立即可为各自实例单独打开数据库 UI。启动链路make dev.up 与 make dev.server 做了什么多实例启动与单实例完全一致只是每套仓库的.env不同。从 Makefile 可以看到完整链路make dev.up创建tmp/screenshots与 Go 缓存目录执行docker compose up -d --wait --build --pull always拉起app、db、rabbitmq等服务并在非 CI 环境额外构建本地 runner 镜像。app容器默认command: [sleep, infinity]处于空闲态。make dev.setup首次需要安装前端依赖npm install、生成 protobuf/OpenAPI 代码、下载 Go 模块并编译cmd/server/main.go、创建并迁移superplane_dev、superplane_test与broker数据库最后启动 task-broker 并注入local、e1-large-amd64等 fleet。make dev.server拉起 runner 工作进程然后执行docker-entrypoint.dev.sh该脚本docker-entrypoint.dev.sh先清理残留的air/vite进程再并行启动 Go 热重载air与 Vite 开发服务器最后通过scripts/wait-for-app等待应用就绪。细节提醒docker-compose.dev.yml 注释中提到两个并发go build例如两个 Air 实例可能因共享模块下载临时文件而互相干扰出现rename ... .tmp: no such file or directory与failed to build, error: exit status 1。为此 Compose 将GOMODCACHE/GOCACHE固定到命名卷go-pkg-cache:/go多实例各有一套命名卷天然规避该问题。五实例扩展Instance C/D/E官方模板不止支持双实例。.env.multi-instance.example 预置了直到 Instance E 的完整端口矩阵变量ABCDEPUBLIC_API_PORT80008001800280038004VITE_DEV_PORT51735174517551765177VITE_PREVIEW_PORT41734174417541764177STORYBOOK_PORT60066007600860096010OTEL_GRPC_PORT43174319432143234325OTEL_HTTP_PORT43184320432243244326PGWEB_PORT80818082808380848085RABBITMQ_PORT56725673567456755676RABBITMQ_MANAGEMENT_PORT1567215673156741567515676PPROF_PORT60606061606260636064BASE_URLhttp://localhost:8000…8001…8002…8003…8004WEBHOOKS_BASE_URLhttp://localhost:8000…8001…8002…8003…8004可以看到整套端口体系按实例整体偏移宿主机的端口冲突风险主要来自同实例内的服务例如 8000 与 8081 并不相邻只要按模板取值即可安全并行。模板也提示根据需要为你的环境调整。让第二实例跳过初始化本地数据库快照多实例的典型痛点第二套实例启动后仍要重新完成 owner 设置、组织创建与 GitHub 连接。SuperPlane 提供的解法是本地数据库快照make db.snapshot对当前 worktree 的superplane_dev执行pg_dump -Fc --no-owner --no-acl输出到.local/superplane_dev.dump该文件被 gitignore勿提交。实现见 scripts/db_snapshot.sh。make db.restore从该 dump 恢复superplane_dev并自动应用尚未执行的迁移见 scripts/db_restore.sh 与 Makefile 中的目标注释。官方流程完整说明见 Local database snapshot在第一个实例的 UI 中完成 owner、组织、GitHub 与 workspace 设置执行make db.snapshot保存基线 dump之后如果有想保留的后续设置变更再次执行make db.snapshot若新环境是另一个 worktree先把.local/superplane_dev.dump复制过去在新 worktree 中执行make db.restore若make dev.server已在运行重启它。注意事项快照/恢复必须在提供你所用 UI 的那个 worktree 中执行make db.snapshot与make db.restore使用该 worktree 的 Compose 栈其中的 Postgres 是db:5432而PUBLIC_API_PORT来自.env只是 UI 端口与数据库地址无关。恢复只替换superplane_dev不会改动superplane_testdump 只保存 Postgres 行数据不包含 blob 文件GitHub App 凭据等依然来自.env快照脚本硬性限制只对superplane_dev生效db.snapshot only runs against superplane_dev。这套机制对脚本与 Agent 自动化创建本地环境同样适用——官方文档明确建议当脚本或 Agent 创建本地环境时使用该路径。多实例的典型应用场景与排查要点并行调试前后端改动在两套仓库分别应用不同分支的改动通过 A/B 端口对照 UI 行为差异互不干扰验证外部回调接入 ngrok 等隧道时为每个实例设置独立的公网 URL并把WEBHOOKS_BASE_URL、BASE_URL与ALLOWED_WS_ORIGINS一并对齐端口冲突排查若某实例启动失败先用docker compose ps确认是否有容器未绑定到预期端口再核对.env是否只取消注释了一组实例区块模板默认全部注释资源考量每套实例都会拉起 Postgres 17.5、RabbitMQ 3.8.17、otel collector 与 app 容器五实例并行对 CPU 与内存要求较高实际并行数量请根据本机资源调整。总结SuperPlane 的多实例本地开发方案建立在每个仓库独立.env Compose 变量插值之上复制 .env.multi-instance.example 为.env、取消对应实例区块的注释即可获得一套完整且互不冲突的端口矩阵配合make db.snapshot/make db.restore快速克隆已初始化的superplane_dev第二个实例甚至不需要重复 owner 设置与 GitHub 连接。无论你是手工维护两套工作区还是让脚本与 Agent 批量创建本地环境这套方案都能让多个 SuperPlane 开发实例在同一台机器上并驾齐驱。赞分享【免费下载链接】superplaneOpen source factory for one-shot engineering项目地址https://gitcode.com/gh_mirrors/su/superplane点击查看免费下载相关推荐Polar 多实例本地开发环境用 dev docker 并行管理多个隔离工作树Polar 多实例本地开发环境用 dev docker 并行管理多个隔离工作树 导读 Polar 是一个面向智能时代的计费billing平台其代码库横跨后端前端金融科技Cherry Studio 如何用 CS_DEV_USER_DATA_SUFFIX 并行运行多个开发实例Cherry Studio 如何用 CS_DEV_USER_DATA_SUFFIX 并行运行多个开发实例 在 Cherry Studio一个基于 Elect人工智能大模型AI 应用交互助手本地部署Taro跨端开发终极指南一套代码多端运行Taro跨端开发终极指南一套代码多端运行 Taro是一个开源的开放式跨端跨框架解决方案它让开发者能够使用React、Vue或Nerv等现代前端框架来开发微信前端小程序跨平台移动开发上一篇终极Step CLI实战指南7个真实场景教你轻松处理OAuth 2.0和OIDC下一篇Laravel LogViewer 终极使用指南快速掌握日志管理神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

PMSM FOC控制中电流环与速度环PI参数整定进阶指南
PMSM FOC控制中电流环与速度环PI参数整定进阶指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 2:57:43

PCA人脸识别原理与实战:从特征脸到门禁系统避坑指南
PCA人脸识别原理与实战:从特征脸到门禁系统避坑指南

简介:面向机器学习入门与人脸识别应用场景,这份以主成分分析(PCA)算法为核心的降维实践资源包,提供了从图像预处理、特征提取到分类识别的完整小型项目,适合想结合代码理解特征脸原理的学生或开发者。压缩包… · 2026/9/28 2:57:43

从 CHANGELOG.md 识别 WordPress 插件版本:WPScan Change Log 动态查找器(vbsso-lite 实例全解)
从 CHANGELOG.md 识别 WordPress 插件版本:WPScan Change Log 动态查找器(vbsso-lite 实例全解)

网络安全漏洞扫描渗透测试应用安全CLI 【免费下载链接】wpscan WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contactwpscan.com 项目地址: ht… · 2026/9/28 2:57:37

顺义本土正骨名医——苏荫来的故事
顺义本土正骨名医——苏荫来的故事

在顺义本地骨伤正骨领域,有这样一位深耕三十余年的实力派老医者,一身古法正骨手艺,一手传承绝活,专治各类筋骨伤痛,凭借精准的手法、扎实的疗效、踏实的行医作风,深得邻里百姓信赖与认可。他就是杏园金方首… · 2026/9/28 3:29:27

2026实测百度网盘直链助手脚本,速度超越PanDownload工具
2026实测百度网盘直链助手脚本,速度超越PanDownload工具

随着我们手头的各种文档和视频资料越来越大,网盘在数据流转中扮演的角色也越来越重要。不管是工作交接还是备份生活点滴,它都帮了我们不少忙。 不过在日常使用中,偶尔遇到下载变慢也确实会让人感到有些苦恼。面对这种现象我们除了可以配合Pa… · 2026/9/28 3:29:08

剪映操作|输入文字后,能不能自动生成虚拟主播、配音和字幕
剪映操作|输入文字后,能不能自动生成虚拟主播、配音和字幕

适用对象:AI视频生成任务的创作者。本文只处理“输入文字后,能不能自动生成虚拟主播、配音和字幕?”这一件事。先确定这一条要解决什么先给结论:处理“输入文字后,能不能自动生成虚拟主播、配音和字幕?”&a… · 2026/9/28 3:28:21

运算符 文件操作 6
运算符 文件操作 6

运算符&#xff1a;算数运算: - * / % ////&#xff1a;整除%&#xff1a;求余比较运算&#xff1a;> < > < !赋值运算 &#xff1a; - *a21 b2 a,bb,a#只适合python print(a)#2 print(b)#21逻辑运算&#xff1a;and or not当and&#xff0c;or… · 2026/9/28 3:27:47

字符集和编码 bytes 5
字符集和编码 bytes 5

字符集和编码ascii——编排了128个文字字符&#xff0c;只需要7个0和1就可以表示了——1 byte8 bitANSI——每个字符 16 bit&#xff0c;2byteGBK编码Unicode&#xff1a;万国码utf-8&#xff1a;最短的字节长度8 英文&#xff1a;8bit&#xff0c;1 byte总结&#xff1a;as… · 2026/9/28 3:27:28

高效获取STM32开发参考方案:摆脱资料海洋,聚焦可落地项目
高效获取STM32开发参考方案:摆脱资料海洋,聚焦可落地项目

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 3:19:17

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码