【免费下载链接】susi_hangoutbot
SUSI for Google Hangouts
susi_hangoutbot 是一个把 SUSI AI 接入 Google Hangouts 的聊天机器人项目,核心由 Dockerfile 定义容器化方案。本文带你零基础完成 Docker 镜像构建:以 node:boron 为基础镜像、通过EXPOSE 8080暴露服务端口,并附赠 kubernetes 一键部署与云部署的参考流程。
1. 先认识 susi_hangoutbot:Google Hangouts 上的 AI 聊天机器人 🤖
这个项目用 Node.js 编写,工作原理很简单:
- 通过 hangouts-bot 库监听 Google Hangouts 的消息;
- 收到消息后请求 SUSI AI 接口获取智能回答;
- 再把回答发回 Hangouts 对话窗口。
关键代码就两个文件:
- 入口逻辑:app.js —— 这里可以看到
app.set('port', 8080),服务固定在8080 端口监听; - 依赖清单:package.json —— 核心依赖为
express、hangouts-bot、request,npm start即启动node app.js。
正因为依赖极少、入口单一,它非常适合用 Docker 一键打包运行。
2. Dockerfile 逐行解读:node:boron 基础镜像怎么来的 🐳
整个 Dockerfile 只有十几行,按顺序做了 5 件事:
| 指令 | 作用 |
|---|---|
FROM node:boron | 选用 node:boron(Node.js 4 时代)官方镜像作为基础环境 |
RUN mkdir -p /usr/src/app+WORKDIR | 创建应用目录并设为工作目录 |
COPY package.json+RUN npm install | 先拷贝依赖清单再安装,充分利用 Docker 缓存层 |
COPY . /usr/src/app | 把全部源码打包进镜像 |
EXPOSE 8080+CMD ["npm", "start"] | 声明服务端口 8080,容器启动时执行 npm start |
💡 小贴士:先
COPY package.json再npm install,是官方推荐的镜像优化技巧——源码小改动时不必重复安装依赖,构建速度会快很多。
3. 构建镜像:从克隆仓库到 docker build
在本地执行下面三条命令,就能得到一个可运行的镜像:
# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/su/susi_hangoutbot # 进入目录并构建镜像 cd susi_hangoutbot docker build -t susi-hangoutbot:latest .构建成功后,用docker images就能看到名为susi-hangoutbot的镜像。
4. 端口 8080 暴露:容器跑起来的关键一步
EXPOSE 8080只是"声明",真正让外部可访问的是运行时端口映射。启动容器时需要两个要点:
docker run -d \ -p 8080:8080 \ -e password=你的Gmail密码 \ susi-hangoutbot:latest-p 8080:8080:把宿主机的 8080 端口映射到容器内 app.js 中app.listen监听的端口,外部流量才能进入机器人服务;-e password:app.js 启动时会读取process.env.password用于登录 Gmail 账号,缺少这个环境变量机器人无法上线。
看到日志输出online即表示机器人已在 Google Hangouts 中上线 ✅
5. 进阶玩法:kubernetes 集群一键部署 🚀
项目内置了一套 k8s 部署脚本,适合多副本、高可用的场景:
- 一键脚本:kubernetes/deploy.sh —— 执行
bash deploy.sh create部署,bash deploy.sh delete清理; - 命名空间:kubernetes/yamls/generator/00-namespace.yml;
- 环境变量配置:kubernetes/yamls/generator/configmap.yml,密码等敏感信息通过 ConfigMap 注入;
- 核心 Deployment:kubernetes/yamls/generator/generator-deployment.yml —— 容器内声明
containerPort: 8080,与 Dockerfile 的EXPOSE 8080保持一致; - 对外服务:kubernetes/yamls/generator/generator-service.yml;
- 集群安装细节可参考:docs/Installations/gce-kubernetes.md。
镜像构建脚本则位于 kubernetes/images/generator/Dockerfile,配合 setup.sh 完成 CI 推送。
6. 云部署参考:Heroku 自动部署流程 ☁️
如果暂时没有自己的服务器,也可以借助 PaaS 平台。在 Heroku 的 Deploy 页面选择 GitHub 部署方式:
随后启用 master 分支的自动部署,每次推送代码都会自动构建新版本:
最后在 Settings → Config Vars 中添加名为password的配置项(对应容器环境变量),机器人即可上线。
总结
- 构建:
docker build -t susi-hangoutbot:latest .,基于 node:boron 镜像; - 运行:
-p 8080:8080映射端口 +-e password注入凭据; - 扩展:通过 kubernetes/ 目录下的 yaml 一键部署到集群。
掌握这套"Dockerfile 构建 → 端口暴露 → 编排部署"的完整链路后,你也能快速容器化其他小型 Node.js 机器人项目。
【免费下载链接】susi_hangoutbot
SUSI for Google Hangouts
相关推荐
Qlib Docker 镜像构建与容器化实战:从 Dockerfile 到镜像推送的完整指南
Qlib Docker 镜像构建与容器化实战:从 Dockerfile 到镜像推送的完整指南 本文为 Qlib 量化投研平台的 Docker 容器化专题指南。文
金融科技人工智能机器学习数据分析强化学习Modern JavaScript Tutorial 实战:`class Rabbit extends Object` 与普通 `class Rabbit` 的原型链与静态方法差异详解
Modern JavaScript Tutorial 实战: class Rabbit extends Object 与普通 class Rabbit 的原型链
文档/教程前端Qwen3-8B-WMXFP4FP8-AMXFP4FP8-AMP-KVFP8性能评测:FP8与MXFP4量化方案谁更胜一筹?
Qwen3 8B WMXFP4FP8 AMXFP4FP8 AMP KVFP8性能评测:FP8与MXFP4量化方案谁更胜一筹? Qwen3 8B WMXFP4FP
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考