fix(deploy): Correct 1Panel service configuration

- Require a valid Base64 Nacos auth token in examples and docs
- Mount Nacos application config for 1Panel deployments
- Adjust service health checks and startup dependencies
This commit is contained in:
Toys-A
2026-08-06 17:11:11 +08:00
parent 53e309026f
commit 16e9d7f9bd
4 changed files with 87 additions and 14 deletions
+50 -1
View File
@@ -126,10 +126,22 @@ USER_JWT_SECRET=至少32字节随机字符串
ADMIN_JWT_SECRET=至少32字节随机字符串
SERVICE_AUTH_TOKEN=至少32字节随机字符串
ADMIN_INIT_PASSWORD=后台管理员初始密码
NACOS_AUTH_TOKEN=至少32字节随机字符串
NACOS_AUTH_TOKEN=Base64编码且解码后至少32字节的随机字符串
GRAFANA_ADMIN_PASSWORD=强密码
```
生成 Nacos token:
```bash
openssl rand -base64 32
```
示例值:
```env
NACOS_AUTH_TOKEN=U0VDUkVUS0VZMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw
```
国内服务器建议保留默认 Maven 镜像:
```env
@@ -363,6 +375,43 @@ MAVEN_MIRROR_URL=https://maven.aliyun.com/repository/public
修改 `.env.1panel` 后,需要在 1Panel 中重新构建编排。
### Nacos 显示 unhealthy
如果 1Panel 日志出现:
```text
dependency failed to start: container haovp-nacos is unhealthy
```
新版编排不再让业务服务等待 Nacos `healthy`,也不再给 Nacos 配置 Docker healthcheck。这样可以避免 1Panel 因 Nacos 启动慢而判定整个编排失败。同步新版 `docker-compose.1panel.yml` 后,需要删除失败编排或重新创建容器,让新的依赖策略生效。
如果仍失败,查看 Nacos 容器内部日志:
```bash
docker logs --tail 200 haovp-nacos
```
重点检查:
| 问题 | 处理 |
| --- | --- |
| `NACOS_AUTH_TOKEN` 相关报错 | 确认 `.env.1panel` 中 `NACOS_AUTH_TOKEN` 是 Base64,且解码后至少 32 字节 |
| `No DataSource set` | 先确认服务器上的 `backend/config/nacos/application-1panel.properties` 是“文件”而不是目录,再确认它被挂载到 `/home/nacos/conf/application.properties`,最后用 `--force-recreate` 重建 `haovp-nacos` |
| 数据库连接失败 | 确认 `haovp-mysql` 正常,且首次初始化没有被中断 |
| 端口占用 | 确认宿主机 `8848` 未被其他服务占用,或修改 `NACOS_HTTP_PORT` |
推荐的检查顺序:
```bash
ls -l /opt/HAOVP/backend/config/nacos/application-1panel.properties
docker inspect haovp-nacos --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'
docker rm -f haovp-nacos
docker compose --env-file .env.1panel -f docker-compose.1panel.yml up -d --force-recreate nacos
docker logs --tail 200 haovp-nacos
```
如果 `application-1panel.properties` 在服务器上不存在,Docker 可能会把挂载源当成目录处理,Nacos 就还是读不到数据源配置。
### 拉取 `haovp/video-*` 镜像失败
如果 1Panel 报错类似: