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.
 
 
 
 
 
 
liwei1dao e270cf89b6 上传新版本管理后台 2 months ago
..
confs 优化会议记录 4 months ago
env 优化会议记录 4 months ago
README.md 上传新版本管理后台 2 months ago
dev-deploy.sh 上传新版本管理后台 2 months ago
docker-compose.yml 上传代码 3 months ago
prod-build.sh 优化会议记录 4 months ago
prod-deploy.sh 上传基本版本 3 months ago

README.md

console 管理后台部署

把单服务 console(lego single 服务,维护 app_registry、跨应用统计)打成镜像 console-a11, 推送到私有仓库 docker-registry.ideapsound.com,再到目标机拉取重启。依赖 PostgreSQL / Redis / NATS 由目标环境共享提供(在 .env 里填地址/容器名),不在此 compose 内搭建。

约定(与 voitrans 一致):仓库只提交模板(*.example)。部署脚本会把模板 + docker-compose.yml 同步到服务器, 但绝不上传/覆盖你在服务器上填好的真实 .env / confs/console.yaml(首次需登录服务器照模板复制并填值)。

文件

文件 说明
../../apps/services/Dockerfile.console 镜像构建(编译 console 二进制 + entrypoint + 内置 consoleweb 静态),构建上下文 = apps/services/
../../apps/services/entrypoint.console.sh 容器入口
docker-compose.yml 运行镜像 console-a11,挂 ./confs、./log,.env 注入容器(此文件由你放到服务器)
confs/console.yaml.example console 配置模板;真实 console.yaml 被 gitignore,密钥/端点用 ${VAR} 由 .env 注入
env/env.example 运行时环境模板(只一份,不分环境);真实 .env 被 gitignore
dev-deploy.sh 开发:构建 dev 镜像 → 推送 → 远端拉取重启(固定 tag dev-latest)
prod-build.sh 生产①:构建带版本号镜像并推送(:版本 + :latest),不部署
prod-deploy.sh 生产②:部署指定版本到生产机(单机,无区域),支持回滚

用法

本地(local)

本机直接起容器(用本目录的 .env 与 confs/,自行从 *.example 复制填写):

cd deploy/console
cp env/env.example .env                       # 填真实值
cp confs/console.yaml.example confs/console.yaml
docker compose --env-file .env up -d          # 本机起 console-a11

服务器准备(dev / prod,一次性)

脚本每次会同步 docker-compose.yml + *.example 模板到目标机。首次需登录服务器把模板复制成真实文件并填值 (cp env.example .env、cp confs/console.yaml.example confs/console.yaml,dev-deploy 缺真实文件时也会打印这两条命令):

<部署目录>/                       # dev 默认 /home/work/console-a11,prod 默认 /opt/yunyan/console
├── docker-compose.yml           # 从本目录拷贝
├── .env                         # 照 env/env.example 填(POSTGRES_DSN/REDIS_*/NATS_URL/
│                                #   CONSOLE_TOKEN_KEY/CONSOLE_ADMIN_*/FIELD_ENCRYPT_KEY 等)
├── confs/console.yaml           # 照 confs/console.yaml.example 填
└── log/                         # 日志目录

部署

cd deploy/console
./dev-deploy.sh lingpu          # 开发:发布到灵谱测试环境(构建 dev-latest → 推送 → 远端拉取重启)
./dev-deploy.sh yunyan          # 开发:发布到云雁测试环境
./dev-deploy.sh                 # 不带参数 → 交互选择测试环境
./prod-build.sh 0.1.1           # 生产①:构建并推送 console-a11:0.1.1 (+latest)
./prod-deploy.sh 0.1.1          # 生产②:部署 0.1.1 到生产机
./prod-deploy.sh rollback       # 生产回滚到上一版本(与当前版本来回切换)

改了服务器上的 .env 后,必须经 up(脚本里的 docker compose up -d)重建容器才生效,restart 不会重读环境变量。 生产版本/回滚记录存服务器上的 .deploy_tag / .deploy_tag.prev,不动你维护的 .env。

需要填写 / 提供的东西

  • 部署目标与凭据:写死在各脚本顶部。dev-deploy.sh 的 env_profile()(每个测试环境一套 REGISTRY/DEV_HOST/DEV_KEY/DEV_DIR,现有 lingpu、yunyan;新增环境加一段 case 并写进 ENVS)、prod-deploy.sh 的 DEPLOY_HOST; 仓库账号 admin / 密码已写死;DEPLOY_KEY 默认 ~/.ssh/id_rsa。
    • ⚠️ 本目录脚本纳入 git,公开仓库前务必清空 *_HOST 与 REGISTRY_PASS。
  • 依赖端点:填服务器 .env 的 POSTGRES_DSN / REDIS_* / NATS_URL,以及 CONSOLE_TOKEN_KEY、 超管账号 CONSOLE_ADMIN_ACCOUNT/PASSWORD、字段加密 FIELD_ENCRYPT_KEY、站点名 CONSOLE_SITE_NAME。

端口

console HTTP 8080(容器内,对外经反代/NPM 暴露)。依赖的 postgres / redis / nats 须可达 (同 DOCKER_NETWORK,默认 1panel-network,用容器名,或在 .env 填外部地址)。