Document env reload and restart steps in DOCKER.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-13 09:47:57 +08:00
parent 462bec2739
commit fcf071cfaa
+76 -12
View File
@@ -47,14 +47,88 @@ docker compose build
docker compose up -d
```
## 修改环境变量后重启
环境变量写在项目根目录的 `.env.local` 中,由 `docker-compose.yml``env_file` 注入容器。**变量在创建容器时读取**,改 env 后必须**重建容器**才会生效。
### 服务器(Docker
```bash
cd /opt/zhimingge
nano .env.local # 改完保存
docker compose up -d --force-recreate
```
确认服务正常:
```bash
curl http://127.0.0.1:3130/api/health
docker compose logs -f zhimingge # 有问题时看日志
```
> **注意:** `docker compose restart zhimingge` 只是重启旧容器,**不会**重新读取 `.env.local`。改 env 后请用 `--force-recreate`,不要用 `restart`。
改 env **不需要**重新 `build` 镜像;只有**代码变更**时才需要 `git pull` + `docker compose build` + `up -d`
### 本地开发
```bash
# 改 .env.local 后,Ctrl+C 停掉 dev 进程,再重新启动
npm run dev
```
Next.js 只在启动时读取 env,热更新不会自动加载新变量。
### PM2 部署(旧方式)
若仍使用 PM2 而非 Docker
```bash
cd /opt/zhimingge
nano .env.local
pm2 restart zhimingge
```
### 快速对照
| 场景 | 改 env 后怎么做 |
|------|----------------|
| Docker 生产 | `docker compose up -d --force-recreate` |
| 本地 dev | 停掉再 `npm run dev` |
| PM2 | `pm2 restart zhimingge` |
## 环境变量
通过 `.env.local` 注入容器(见 `docker-compose.yml``env_file`):
| 变量 | 必填 | 说明 |
|------|------|------|
| `OPENAI_API_KEY` | 是 | AI 接口密钥 |
| `OPENAI_BASE_URL` | 否 | 默认 `https://op.bz121.com/v1` |
| `OPENAI_MODEL` | 否 | 默认 `huihui_ai/gemma-4-abliterated:e4b` |
| `AUTH_USERNAME` | 否* | 登录用户名;与下面两项同时配置后启用登录 |
| `AUTH_PASSWORD` | 否* | 登录密码 |
| `AUTH_SESSION_SECRET` | 否* | 会话签名密钥,建议 32 位以上随机字符串 |
| `PORT` | 否 | 容器内 3130 |
\* 三项认证变量**同时**填写时,六爻/八字/综合测算与 AI 解读需登录;任一项留空则关闭登录限制。
验证容器内是否生效(示例):
```bash
docker exec zhimingge printenv OPENAI_API_KEY
docker exec zhimingge printenv AUTH_USERNAME
```
## 常用命令
```bash
docker compose ps # 状态
docker compose logs -f zhimingge # 日志
docker compose restart zhimingge # 重启
docker compose restart zhimingge # 重启容器(不改 env 时用)
docker compose up -d --force-recreate # 重建容器(改 .env.local 后用)
docker compose down # 停止并删除容器
docker compose up -d --build # 重建并启动
docker compose up -d --build # 重建镜像并启动(代码更新后用)
```
## 镜像清理
@@ -153,16 +227,6 @@ docker compose up -d --force-recreate
curl -s http://127.0.0.1:3130/api/health
```
通过 `.env.local` 注入容器(见 `docker-compose.yml``env_file`):
| 变量 | 必填 | 说明 |
|------|------|------|
| `OPENAI_API_KEY` | 是 | AI 接口密钥 |
| `OPENAI_BASE_URL` | 否 | 默认 `https://op.bz121.com/v1` |
| `OPENAI_MODEL` | 否 | 默认 `huihui_ai/gemma-4-abliterated:e4b` |
| `PORT` | 否 | 容器内 3130 |
## 防火墙
```bash