2.2 KiB
Hestia Docker 部署
本仓库承接原 Aster HTTP 宿主部署定义,不代表远端已迁移或正在运行本版本。普通 push/PR 只验证;.gitea/workflows/deploy.yml 仅 main 手动触发,先完整验证 SQLite、真实 PostgreSQL 和宿主流程,再构建 runtime 镜像并调用 scripts/deploy-ces-control.sh。
Dockerfile 的 source 阶段复制宿主工作区、固定 Aster 子模块和脚本;ci 阶段提供检查环境;build 构建 server 和 admin,runtime 继续安装 server 和兼容 cli,UID 10001,/data,健康检查 /health。管理 cli 只负责 bootstrap 和 metadata,不包含 Lyra 的语言执行命令。
| 兼容标识 | 保留原因 |
|---|---|
| Compose 项目 endorphin-aster-vm、服务 aster/postgres | 复用既有服务,不创建替代生产实例 |
| 镜像 endorphin-aster-vm: | 沿用部署脚本接口,SHA 现指宿主提交 |
| ASTER_RELEASE_SHA、ASTER_IMAGE、ASTER_PORT、ASTER_LISTEN、ASTER_STATE_DIR | 保持配置兼容 |
| /opt/endorphin-aster-vm | release.env、releases、current 及回退记录 |
| /etc/endorphin-aster-vm/production.env | 原有生产配置与数据库凭据 |
| /var/lib/endorphin-aster-vm/postgres | 原有 PostgreSQL 数据,禁止删除 |
| /var/lib/endorphin-aster-vm/host | 原有 JSON 文件信息与导入标记 |
| /var/lock/endorphin-aster-vm-deploy.lock | 串行切换生产版本 |
生产 Compose 继续读取 docker-compose.ces-control.yml。默认 docker-compose.yml 和独立 docker-compose.postgres.yml 保留原命名卷、环境与端口接口;不因拆仓改变卷或 PostgreSQL major 版本。
部署只接受已构建镜像。健康、对象引导和释放检查成功后,按需只读导出旧 public.aster_metadata,并由 cli metadata import 仅创建缺失 JSON;不覆盖新文件,不写旧表,不删除原库。最后写 deployment.release,原子切换 current。失败时保留数据并尝试恢复上个健康应用版本;应用回退不等于数据库回退。
迁移仓库和移除 Aster CD 均不会执行以上部署命令,不停止现有容器,不改共享 Runner。具体文件信息协议见 host-information.md,验证边界见 validation.md。返回 运维。