# 服务发布与回滚说明

## 发布原则

每个服务单独构建镜像、单独发布、单独回滚。不得因为修改一个子游戏而重启全部平台服务。

## 发布流程

```bash
cd /Users/amumu/Desktop/beifen/golang新架构
make test
docker build \
  -t registry.local/game-platform/merchant-gateway:20260606-001 \
  -f 部署/Dockerfile.service \
  --build-arg SERVICE_DIR=平台服务/merchant-gateway \
  --build-arg SERVICE_NAME=merchant-gateway \
  .
docker push registry.local/game-platform/merchant-gateway:20260606-001
kubectl -n game-platform set image deploy/merchant-gateway merchant-gateway=registry.local/game-platform/merchant-gateway:20260606-001
kubectl -n game-platform rollout status deploy/merchant-gateway
```

## 回滚流程

```bash
kubectl -n game-platform rollout history deploy/merchant-gateway
kubectl -n game-platform rollout undo deploy/merchant-gateway
kubectl -n game-platform rollout status deploy/merchant-gateway
```

## 发布前检查

- `make test` 必须通过。
- 数据库变更必须先写迁移脚本和回滚脚本。
- 资金服务变更必须增加幂等、重复请求、超时补偿测试。
- 子游戏发布必须绑定配置版本，不能读取未审核配置。
