fix(deploy): 修复数据库初始化复用旧镜像
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
## 生产部署
|
||||
- 生产入口:`docker-compose.yaml`
|
||||
- 初始化方式:`docker compose run --rm backend-init`
|
||||
- 初始化方式:`docker compose run --rm --build backend-init`
|
||||
- 启动方式:`docker compose up -d --build`
|
||||
- 运行拓扑:`nginx`、`backend`、`db`
|
||||
- 对外入口:`nginx` 提供前端静态资源,并同域反代后端 API
|
||||
|
||||
@@ -149,7 +149,7 @@ bash scripts/install.sh release --base-url https://ctms.example.com
|
||||
1. 检查 docker、docker compose、openssl、curl。
|
||||
2. 检查 .env;已存在则保留不改,不存在则新建。
|
||||
3. 新建 main/release 的 .env 时自动生成 JWT 和 RSA 私钥。
|
||||
4. main/release 先执行 backend-init。
|
||||
4. main/release 先构建并执行 backend-init,确保数据库迁移使用当前代码中的 Alembic revision。
|
||||
5. 启动容器;默认执行 docker compose up -d --build,--skip-build 时执行 docker compose up -d。
|
||||
6. 执行 docker compose run --rm backend python -m alembic upgrade head。
|
||||
7. 检查容器状态、后端环境、/health、/api/v1/auth/login-key。
|
||||
@@ -333,7 +333,7 @@ LOGIN_RSA_PRIVATE_KEY: '-----BEGIN PRIVATE KEY-----...'
|
||||
### 5. 初始化数据库
|
||||
|
||||
```bash
|
||||
docker compose run --rm backend-init
|
||||
docker compose run --rm --build backend-init
|
||||
```
|
||||
|
||||
### 6. 构建镜像并启动
|
||||
@@ -521,7 +521,7 @@ LOGIN_RSA_PRIVATE_KEY: '-----BEGIN PRIVATE KEY-----...'
|
||||
### 6. 初始化数据库
|
||||
|
||||
```bash
|
||||
docker compose run --rm backend-init
|
||||
docker compose run --rm --build backend-init
|
||||
```
|
||||
|
||||
确认命令成功后再启动服务。
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
最后更新: `2026-03-30`
|
||||
|
||||
## 1. 构建与迁移
|
||||
- [ ] `docker compose run --rm backend-init`
|
||||
- [ ] `docker compose run --rm --build backend-init`
|
||||
- [ ] `cd backend && python3 -m compileall app scripts`
|
||||
- [ ] `cd frontend && npm run build`
|
||||
|
||||
## 1.1 容器构建校验
|
||||
- [ ] `docker compose config` 渲染成功
|
||||
- [ ] `docker compose build backend frontend` 成功
|
||||
- [ ] `docker compose run --rm backend-init` 成功
|
||||
- [ ] `docker compose run --rm --build backend-init` 成功
|
||||
|
||||
## 2. 接口与权限回归
|
||||
- [ ] ADMIN 账号可 `GET/PUT/PUBLISH/IMPORT-EXCEL/EXPORT-EXCEL`
|
||||
|
||||
@@ -325,7 +325,13 @@ run_compose_config() {
|
||||
|
||||
run_backend_init() {
|
||||
step "初始化数据库与管理员账号"
|
||||
if [[ "$SKIP_BUILD" -eq 1 ]]; then
|
||||
ctms_run_quiet "运行 backend-init 容器" -- compose_cmd run --rm backend-init
|
||||
else
|
||||
# backend-init 是 profile 服务,不会被后续 `compose up --build` 自动构建。
|
||||
# 更新部署时必须先基于当前代码重建,否则会复用旧镜像并缺失新 Alembic revision。
|
||||
CTMS_LIVE_OUTPUT=1 ctms_run_quiet "构建并运行 backend-init 容器" -- compose_cmd run --rm --build backend-init
|
||||
fi
|
||||
}
|
||||
|
||||
run_build_and_start() {
|
||||
|
||||
Reference in New Issue
Block a user