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 c44d7145b0 上传主界面 3 months ago
..
env 上传主界面 3 months ago
README.md 上传主界面 3 months ago
deploy.sh 上传服务端代码优化 4 months ago
dev-deploy.sh 上传主界面 3 months ago
docker-compose.yml 上传主界面 3 months ago
prod-build.sh 上传主界面 3 months ago
prod-deploy.sh 上传主界面 3 months ago

README.md

admin 管理前端部署

把 Nuxt 4 SSR 管理后台 admin 打成镜像 yunyan-admin,推送到私有仓库 docker-registry.ideapsound.com,再到目标机拉取重启。它本身不连数据库,只通过 CONSOLE_BACKEND 把 /web/api、/console/api 代理到同网络的 console 后端(容器名 console-a11)。

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

文件

文件 说明
../../apps/admin/Dockerfile 镜像构建(Nuxt SSR:pnpm build → node server),构建上下文 = apps/admin/
docker-compose.yml 运行镜像 yunyan-admin,.env 注入容器,只 expose 3000(经反代对外)
env/env.example 运行时环境模板(只一份,不分环境);真实 .env 被 gitignore
dev-deploy.sh 开发:构建 dev 镜像 → 推送 → 远端拉取重启(固定 tag dev-latest)
prod-build.sh 生产①:构建带版本号镜像并推送(:版本 + :latest),不部署
prod-deploy.sh 生产②:部署指定版本到生产机(单机,无区域),支持回滚

用法

本地(local)

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

cd deploy/admin
cp env/env.example .env                       # 填真实值(至少 CONSOLE_BACKEND)
docker compose up -d                          # 本机起 yunyan-admin

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

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

<部署目录>/                       # dev / prod 均默认 /home/work/yunyan-admin
├── docker-compose.yml           # 从本目录拷贝
└── .env                         # 照 env.example 填(CONSOLE_BACKEND / TAG / DOCKER_NETWORK)

部署

cd deploy/admin
./dev-deploy.sh                 # 开发:构建 dev-latest → 推送 → 远端拉取重启
./prod-build.sh 0.1.1           # 生产①:构建并推送 yunyan-admin: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 的 DEV_HOST、prod-deploy.sh 的 DEPLOY_HOST; 仓库账号 admin / 密码已写死;DEPLOY_KEY 默认 /Users/liwei/Documents/key/yunyan-us.pem(prod)。
    • ⚠️ 本目录脚本纳入 git,公开仓库前务必清空 *_HOST 与 REGISTRY_PASS。
  • 后端地址:.env 的 CONSOLE_BACKEND,须指向同网络的 console 容器,默认 http://console-a11:8080。

端口与反代

admin HTTP 3000(容器内,只 expose 不 publish)。须由 1panel 反代 / NPM 把后台域名 (如 console.yunyanservice.xyz)转发到 yunyan-admin:3000。admin 再在内部把 /web/api、/console/api 代理到 console-a11:8080,所以单域名即可跑通整套(浏览器 → 反代 → yunyan-admin → console-a11)。 admin 与 console 须在同一 DOCKER_NETWORK(默认 1panel-network)。