PanWatch 从源码构建 Docker 镜像:make build 与 GitHub Actions 发布流程
PanWatch 从源码构建 Docker 镜像make build 与 GitHub Actions 发布流程【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatchPanWatch盯盘侠是一款覆盖 A股/港股/美股的 AI 盯盘工具提供持仓分析、实时提醒与自动报告。本文将从源码出发讲解如何用make build一键构建 PanWatch Docker 镜像以及它背后的 GitHub Actions 多平台发布流程。一、为什么值得自己构建镜像官方镜像发布在 Docker Hub但自己动手构建能带来三个好处验证代码本地构建即本地测试构建通过说明依赖和前端打包都没问题定制版本可以在自己的分支上打私有版本标签只推送到自己的仓库理解架构PanWatch 采用「Node 前端构建 Python 后端运行」的多阶段 Dockerfile是学习生产级镜像瘦身的好样本。构建完成后你得到的就是一个可直接docker run的 PanWatch 容器启动后访问http://localhost:8000即可使用 AI 盯盘、实时提醒等功能。二、一键构建步骤make build 详解2.1 准备工作先克隆仓库只读使用即可git clone https://gitcode.com/GitHub_Trending/pa/PanWatch cd PanWatch本地构建需要三个工具Node.js前端、pnpm包管理、Docker。Makefile 中的build目标会自动检测操作系统并选择对应脚本Linux/macOS执行 build.shWindows执行 scripts/build.ps1PowerShell 版2.2 执行构建make build VERSION0.1.0版本号是必填参数不传会提示Usage: make build VERSIONversion。build.sh 会依次完成四步构建前端在frontend/目录执行pnpm install --frozen-lockfile pnpm build复制静态产物把frontend/dist/拷到临时static/目录供 Dockerfile 使用构建镜像docker build --platform linux/amd64 --build-arg VERSION0.1.0 -t sunxiao0721/panwatch:0.1.0 .固定 amd64 架构以适配大多数服务器和 NAS追加 latest 标签非 latest 版本会额外打一个latest标签方便快速部署。构建完成后脚本会直接打印后续命令# 运行容器 docker run -d -p 8000:8000 -v panwatch_data:/app/data sunxiao0721/panwatch:0.1.0 # 推送镜像需先 docker login docker push sunxiao0721/panwatch:0.1.0三、Dockerfile 多阶段构建解读Dockerfile 是整个构建的核心采用两阶段设计来控制镜像体积阶段基础镜像作用Stage 1前端构建node:24.14.0-alpine用 corepack 固定 pnpm 9.15.9 版本pnpm build产出静态文件Stage 2运行环境python:3.11-slim安装时区数据、中文字体、Playwright Chromium 依赖拷贝后端源码与前端产物几个值得注意的工程细节版本号注入构建时通过ARG VERSION写入 VERSION 文件当前仓库中为dev运行时版本即可追溯前端产物挂载COPY --fromfrontend-builder把 dist 直接拷入./static/最终镜像里不含 Node 环境健康检查内置HEALTHCHECK每 30 秒请求/api/health探活可覆盖时区默认TZAsia/Shanghai可用-e TZ...覆盖Playwright 延迟安装浏览器在首次启动时自动装到数据卷data目录进一步减小镜像体积。数据统一存放于/app/data通过-v panwatch_data:/app/data持久化升级镜像时持仓、提醒配置等数据不会丢失。四、GitHub Actions 自动发布流程正式版本不依赖本地构建而是由.github/workflows/release.yml全自动完成流程如下推送 tag (x.y.z) 或 手动触发 ↓ 跑后端单测pytest tests/ -x -q ↓ 跑 marketdata 包测试 ↓ QEMU buildx 多平台构建amd64 arm64 ↓ 登录 Docker Hub推送 version / latest 标签 ↓ 生成 release-notes.md → 创建 Release → Telegram 通知4.1 两种触发方式Tag 推送推送形如0.2.3的 tag注意不带 v 前缀匹配规则为*.*.*自动触发手动触发通过workflow_dispatch指定version、是否推送latest、目标平台默认linux/amd64,linux/arm64。4.2 版本解析的兼容性处理workflow 中的 Resolve version 步骤release.yml会把带v前缀的 tag 自动去掉前缀因此v0.2.3和0.2.3都能正确发布并生成对应 Docker 标签版本号标签 可选 latest。4.3 质量门禁构建前必须跑通全部后端单测和 marketdata 包测试测试不过则发布中止仓库还提供了 scripts/pre_release_check.sh可在发布前手动执行单测 Python 编译检查 前端构建加--with-agent-smoke参数还会触发 4 个 AI Agent日报、盘前展望、图表分析师、盘中监控做真实冒烟验证通过 make install-hooks 安装 scripts/pre-push 钩子后每次git push前都会自动跑单测把问题拦在推送之前。五、本地构建 vs 自动发布怎么选场景推荐方式体验新分支、定制改动make build VERSIONdev本地构建团队发布正式版本打 tag让 GitHub Actions 自动构建双架构镜像NAS / ARM 设备部署使用 Actions 发布的linux/arm64镜像本地 build.sh 只产 amd64总结PanWatch 的构建发布链路非常清晰make build负责本地一键构建build.sh 串起前端打包与 Docker 多阶段构建GitHub Actions 的 release.yml 则在测试门禁通过后自动构建 amd64/arm64 双架构镜像并推送到 Docker Hub附带 Release 说明与即时通知。无论你是想尝鲜新特性还是自部署 AI 盯盘都能在这条流水线上找到适合自己的方式。【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

LinkSwift:8 大网盘直链下载,新手 10 分钟跑通

LinkSwift:8 大网盘直链下载,新手 10 分钟跑通

LinkSwift:8 大网盘直链下载,新手 10 分钟跑通 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …

2026/10/1 21:29:21 阅读更多 →
深圳龙岗中小企业商标设计注册预算多少钱合适?

深圳龙岗中小企业商标设计注册预算多少钱合适?

深圳龙岗有个做餐饮的老板,去年在坂田开了家湘菜馆,生意不错。他想把品牌名注册下来,问了几家代理,报价从一千到三千都有。他问代理:“我该花多少钱?”代理回了一句:“看你想要什么。一千块买的…

2026/10/1 21:29:21 阅读更多 →
AI 四诊仪怎么落地,提升门店到店转化

AI 四诊仪怎么落地,提升门店到店转化

很多养生馆都在找低成本拓客工具,AI 四诊仪最近热度很高,但不少门店买完之后放角落吃灰。核心问题不是设备本身,是没有配套落地运营思路。结合明理 AI 四诊仪的落地实战经验,聊聊门店怎么用好这类设备。很多人误解 AI 四诊仪是 “…

2026/10/1 21:29:21 阅读更多 →

最新新闻

Redis集群主从切换后,我的客户端为什么还在往旧主写?

Redis集群主从切换后,我的客户端为什么还在往旧主写?

一场凌晨的故障:从告警到冷汗 凌晨3点,我正盯着手机上的告警:「Redis集群主节点故障,触发自动切换」。这本该是个好消息——Sentinel正常工作了,但接下来的监控曲线却让我冷汗直冒:客户端QPS断崖式下跌&a…

2026/10/3 0:45:08 阅读更多 →
Redis的OOM错误让我通宵,原来问题出在这里

Redis的OOM错误让我通宵,原来问题出在这里

凌晨3点,监控警报把整个团队炸醒——生产环境的Redis突然OOM,导致核心业务瘫痪。更讽刺的是,这台机器明明有32GB内存,而Redis的maxmemory只配置了20GB。为什么明明有足够内存,Redis却抛出了OOM? 这个反直觉…

2026/10/3 0:45:07 阅读更多 →
MTPLX 快速上手教程:5 分钟从安装到第一次本地 AI 对话

MTPLX 快速上手教程:5 分钟从安装到第一次本地 AI 对话

MTPLX 快速上手教程:5 分钟从安装到第一次本地 AI 对话 【免费下载链接】MTPLX The fastest way to run Qwen 3.8 Flash Next, Qwen 3.8 27B and Ternary Bonsai 2 27B on a Mac: 125 tok/s in OpenCode on an M5 Max, and a 27B model on 16 GB Macs. Native MTP s…

2026/10/3 0:44:06 阅读更多 →
Vibe-Research 环境配置清单:Node、Python 与 Git 安装避坑指南

Vibe-Research 环境配置清单:Node、Python 与 Git 安装避坑指南

Vibe-Research 环境配置清单:Node、Python 与 Git 安装避坑指南 【免费下载链接】Vibe-Research Vibe-Research: Your Personal Trading Research Agent A股/美股/港股 的个人投研 Agent:每日复盘、资讯雷达、个股数据、板块中心、我的持仓、研究记录、…

2026/10/3 0:40:05 阅读更多 →
写论文如何又快又好?导师强推这几个AI写作辅助平台

写论文如何又快又好?导师强推这几个AI写作辅助平台

写论文又快又好,关键在于用对AI工具、走对流程——资深教授普遍推荐:千笔AI(中文全流程首选) 豆包学术版(轻量高效) DeepSeek 学术版(理工 / 长文本) Grammarly Academic&#xff08…

2026/10/3 0:40:05 阅读更多 →
全能型 AI论文工具星级排名(2026 终极指南)

全能型 AI论文工具星级排名(2026 终极指南)

基于功能完整性、学术适配性、用户反馈及操作便捷性,本文对当前主流AI论文写作工具进行深度测评,按综合使用价值从高到低进行排名,并详细解析各工具的核心优势与适用人群。🏆 第一梯队:全流程学术解决方案(…

2026/10/3 0:40:05 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/2 6:09:11 阅读更多 →