You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 months ago | |
|---|---|---|
| .. | ||
| confs | 4 months ago | |
| env | 4 months ago | |
| README.md | 4 months ago | |
| dev-deploy.sh | 4 months ago | |
| docker-compose.yml | 4 months ago | |
| prod-build.sh | 4 months ago | |
| prod-deploy.sh | 4 months ago | |
README.md
voitrans 业务服务部署
把 gateway + home + api + mcp + timer 五个集群(RPCX/ETCD)服务打成一个镜像 voitrans-a11,
推送到私有仓库 docker-registry.ideapsound.com,再到目标机拉取重启。容器内用 shell(entrypoint) 管理 5 个进程,
任一进程退出即整体重启。
文件
| 文件 | 说明 |
|---|---|
../../apps/services/Dockerfile.voitrans |
镜像构建(编译 5 个二进制 + entrypoint),构建上下文 = apps/services/ |
../../apps/services/entrypoint.voitrans.sh |
容器入口,拉起并守护 5 个服务进程 |
docker-compose.yml |
运行镜像,把本目录挂为容器 /app,.env 注入容器 |
confs/*.yaml |
5 个服务的运行配置(含真实密钥,随仓库提交);基础设施端点用 ${VAR} 由 .env 注入 |
env/<env>.env.example |
运行时配置模板(真实 .env 被 gitignore,需复制后填写) |
dev-deploy.sh |
开发:构建 dev 镜像 → 推送 → 更新开发环境(一条命令) |
prod-build.sh |
生产①:构建带版本号镜像并推送(:版本 + :latest),不部署 |
prod-deploy.sh |
生产②:选区域 + 版本 tag 部署,支持回滚 |
用法
首次:复制并填写 env(真实文件已 gitignore)
cd deploy/voitrans
cp env/dev.env.example env/dev.env
cp env/shanghai.env.example env/shanghai.env # 生产区域同理 japan / singapore
# 编辑 env/*.env,填 DSN / Redis / ETCD / NATS / 统计应用名等(CHANGE_ME 处)
开发环境(一键发布)
./dev-deploy.sh # 构建并发布 dev-latest
./dev-deploy.sh dev_meet-latest # 指定 tag
生产环境(构建与部署分离)
./prod-build.sh 0.1.1 # 构建并推送 voitrans-a11:0.1.1 (+latest)
./prod-deploy.sh shanghai 0.1.1 # 部署 0.1.1 到上海
./prod-deploy.sh japan 0.1.1 # 部署到日本
./prod-deploy.sh singapore 0.1.1 # 部署到新加坡
./prod-deploy.sh shanghai rollback # 上海回滚到上一版本(与当前版本来回切换)
需要填写 / 提供的东西
- 部署目标与凭据:写死在各脚本顶部。
dev-deploy.sh:DEV_HOST(开发服务器 IP)。prod-deploy.sh:region_profile()里各区域的DEPLOY_HOST。- 仓库账号
admin/ 密码已写死;DEPLOY_KEY默认~/.ssh/id_rsa。 - ⚠️ 本目录脚本纳入 git,公开仓库前务必清空
*_HOST与REGISTRY_PASS。
- 基础设施端点:填
env/<env>.env的ETCD_SERVERS / DB_ADMIN_DSN / DB_DEVICE_DSN / REDIS_* / NATS_URL, 以及统计上报ANALYZE_APP_NAME(须与 console 注册表应用名一致)/ANALYZE_REGION、集群隔离CLUSTER_TAG。 - confs 引用的附属文件(按需放入本目录,会随
confs//工作目录挂入容器/app):home.yaml:./smart-bluetooth-447104-2b269474bd72.json(Google)、firebase/google 登录 json、./apiclient_key.pem(微信支付)、confs/ip2region_v4.xdb与v6.xdb(IP 库)、wordfilter/*.txt(敏感词,不需要则删掉home.yaml的wordfilter段)。- 缺这些文件会导致对应服务启动失败(容器反复重启),用不到的集成请删掉对应配置段。
端口(容器内,对外经反代/NPM 暴露)
gateway 7001 RPCX / 7100 HTTP · home 7002 · timer 7003 · mcp 7004 / 7300 HTTP · api 7005 / 8080 Console。
依赖的 etcd / mysql / redis / nats 须在 DOCKER_NETWORK(默认 1panel-network)网络内,用容器名连接。