fix: 修复Docker部署时加密密钥持久化问题

- 在docker-compose.yml中添加.env文件映射,避免重建容器时生成新密钥
- 修改docker-entrypoint.sh,只在密钥不存在时生成新的,否则使用现有的
- 移除Dockerfile中自动复制.env的逻辑,改为运行时检查
- 更新README文档,添加重要提示说明.env文件映射的必要性
- 解决了每次重建容器导致之前加密数据无法解密的严重问题
This commit is contained in:
shaw
2025-07-24 14:53:34 +08:00
parent 36201cee6b
commit 38c68ca831
4 changed files with 29 additions and 9 deletions

View File

@@ -238,6 +238,7 @@ docker run -d \
-p 3000:3000 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
-v $(pwd)/.env:/app/.env \
-e ADMIN_USERNAME=my_admin \
-e ADMIN_PASSWORD=my_secure_password \
weishaw/claude-relay-service:latest
@@ -260,6 +261,7 @@ services:
volumes:
- ./logs:/app/logs
- ./data:/app/data
- ./.env:/app/.env # 重要:持久化加密密钥
depends_on:
- redis
@@ -306,11 +308,13 @@ cat ./data/init.json
docker-compose.yml 已包含:
- ✅ 自动初始化管理员账号
- ✅ 数据持久化logsdata目录自动挂载
- ✅ 数据持久化logsdata目录和.env文件自动挂载)
- ✅ Redis数据库
- ✅ 健康检查
- ✅ 自动重启
> ⚠️ **重要提示**:从 v1.1.15 版本开始,`.env` 文件必须映射到本地以持久化加密密钥。如果不映射,每次重建容器都会生成新的加密密钥,导致之前加密的数据无法解密!
### 管理员凭据获取方式
1. **查看容器日志**(推荐)