77 lines
1.8 KiB
Markdown
77 lines
1.8 KiB
Markdown
# 部署说明
|
|
|
|
## 唯一部署入口
|
|
|
|
小虾 SaaS 当前唯一有效 Docker 部署入口是:
|
|
|
|
- `infra/docker/compose.yml`
|
|
- `infra/docker/api.Dockerfile`
|
|
- `infra/docker/worker.Dockerfile`
|
|
- `infra/docker/web.Dockerfile`
|
|
- `infra/docker/deploy-staging.sh`
|
|
|
|
仓库根目录的 `Dockerfile` 和 `docker-compose.yml` 已废弃,只作为防误用哨兵保留,不允许用于部署。
|
|
|
|
---
|
|
|
|
## 环境加载规则
|
|
|
|
### 开发环境
|
|
- 默认读取 `.env`
|
|
- 没有 `.env` 时回退到代码默认值
|
|
|
|
### Staging
|
|
- 服务器环境文件:`/var/lib/xiaoxia-saas-staging/.env`
|
|
- `APP_ENV=staging`
|
|
- `WEB_PORT=3001`
|
|
- 由 Gitea Actions 调用 `infra/docker/deploy-staging.sh`
|
|
|
|
### Production
|
|
- 生产环境文件:`/var/lib/xiaoxia-saas-production/.env`
|
|
- `APP_ENV=production`
|
|
- 只允许通过 tag/release 触发生产部署
|
|
- 必须替换所有密钥和 `CHANGE_ME` 项
|
|
|
|
---
|
|
|
|
## 本地/手动部署
|
|
|
|
从仓库根目录执行:
|
|
|
|
```bash
|
|
docker compose -f infra/docker/compose.yml up -d --build
|
|
```
|
|
|
|
Staging 手动部署应复用同一入口:
|
|
|
|
```bash
|
|
cp /var/lib/xiaoxia-saas-staging/.env .env
|
|
WEB_PORT=3001 docker compose -f infra/docker/compose.yml up -d --build
|
|
```
|
|
|
|
服务器自动部署使用:
|
|
|
|
```bash
|
|
infra/docker/deploy-staging.sh
|
|
```
|
|
|
|
---
|
|
|
|
## Gitea Actions 约定
|
|
|
|
- `develop` 分支触发 staging 部署。
|
|
- tag `v*` 才允许触发 production 部署。
|
|
- Actions 先同步代码到 `/var/lib/xiaoxia-saas-staging/repo`。
|
|
- Actions 再复制 `/var/lib/xiaoxia-saas-staging/.env` 到部署工作目录。
|
|
- Actions 最终调用 `infra/docker/deploy-staging.sh`。
|
|
|
|
---
|
|
|
|
## 注意事项
|
|
|
|
- 不要使用根目录 `Dockerfile`。
|
|
- 不要使用根目录 `docker-compose.yml`。
|
|
- `.env.production` 不要提交真实密钥。
|
|
- OSS、数据库、Redis、JWT 密钥必须通过服务器环境文件注入。
|
|
- 生产环境必须设置 `DEBUG=false`。
|