Senate

部署

构建、部署和管理应用发布

部署

Senate 中的部署代表构建和发布应用的过程。每次部署都会创建服务的新版本。

部署源

Senate 支持多种部署应用的方式:

Docker 镜像

从仓库拉取预构建的镜像:

nginx:latest
ghcr.io/your-org/your-app:v1.2.3
your-registry.com/app:latest

适用于:使用外部 CI/CD 流水线构建镜像的生产部署。

Dockerfile

从 Dockerfile 构建:

  • 内联:直接在 Senate 中粘贴 Dockerfile 内容
  • Git 仓库:从仓库中的 Dockerfile 构建

适用于:简单应用或希望 Senate 处理构建的场景。

Git 仓库

从 Git 仓库克隆并构建:

选项描述
仓库 URLHTTPS 或 SSH URL
分支要部署的分支(默认:main)
Dockerfile 路径Dockerfile 的路径(默认:./Dockerfile
认证私有仓库的 SSH 密钥或访问令牌

适用于:完整的 GitOps 工作流与自动构建。

Compose (YAML)

用于多容器应用:

  • 内联 YAML:粘贴 docker-compose.yml 内容
  • Git 仓库:使用仓库中的 compose 文件
  • Profile:选择特定的 compose profile
  • Override:提供覆盖 YAML 进行自定义

部署过程

点击 Deploy 时,Senate 执行以下步骤:

1. Pull/Build     → 下载镜像或从源码构建
2. Create         → 创建新容器
3. Start          → 启动容器
4. Health Check   → 验证容器健康(如已配置)
5. Cleanup        → 移除旧容器

部署进度

部署策略

Advanced 标签页配置:

Recreate(重建,默认)

  1. 停止旧容器
  2. 启动新容器

优点:简单、可预测 缺点:切换期间短暂停机

Rolling Update(滚动更新)

  1. 启动新容器
  2. 等待健康检查
  3. 将流量路由到新容器
  4. 停止旧容器

优点:零停机 缺点:需要健康检查,短暂运行两个容器

滚动更新选项配置:

选项描述默认值
Health Check Timeout等待健康状态的最大时间60s
Connection Drain Timeout关闭连接前的等待时间5s
Rollout Services对于 compose:要滚动的服务全部

查看部署

部署历史

Deployments 标签页显示所有部署:

  • 状态指示器
  • 时间戳
  • 持续时间
  • 触发源(手动、webhook、自动)
  • Git 提交信息(如适用)

点击任何部署查看其日志。

部署历史

部署日志

查看实时或历史日志:

  • 构建输出
  • 拉取进度
  • 容器启动日志
  • 错误消息

自动部署

Webhook 触发

每个服务都有唯一的 webhook URL:

https://senate.example.com/api/services/<service-id>/deploy?token=<secret-token>

在 CI/CD 流水线中配置,以在推送时触发部署。详见 CI/CD 集成 获取详细设置说明。

相关内容

目录