Docker部署Curity时基础设置失败,报error.validation.out-of-range错误
错误含义解析
- 许可证无效:日志明确提示许可证JWT格式不符合预期,未找到有效许可证。这是核心问题,会导致Curity服务无法正常初始化,进而触发后续的503和参数验证错误。
- 503服务不可用:服务未完成初始化流程,无法处理UI请求,直接原因是许可证无效或数据库未正确配置。
error.validation.out-of-range:基础设置时参数值超出允许范围,大概率是许可证无效导致服务处于异常状态,自动配置时出现参数错误。- 找不到PostgreSQL初始化脚本:官方Curity Docker镜像默认不包含数据库初始化脚本,需要手动处理数据库创建和结构初始化。
解决步骤
1. 修复许可证问题
- 确认许可证为Curity 7.2版本兼容的有效JWT文件,避免格式错误。
- 优先通过环境变量注入许可证,比UI上传更可靠:
environment: PASSWORD: your-admin-password LICENSE: "your-full-license-jwt-content" - 也可将许可证文件挂载到容器指定目录:
volumes: - ./path/to/your/license.json:/opt/idsvr/etc/license/license.json
2. 配置PostgreSQL连接
- 先在PostgreSQL容器中手动创建空数据库、用户并分配权限。
- 在Curity UI的基础设置页面,手动填写PG连接信息(主机名、端口、数据库名、用户名、密码)。
- 若需要初始化Curity数据库结构,可从官方文档获取对应SQL脚本,执行到PG数据库中。
3. 完善Docker Compose配置
补充必要的环境变量和网络配置,确保Curity容器能访问PG服务:
curity: image: curity.azurecr.io/curity/idsvr:7.2.0 # 指定明确的7.2版本镜像 container_name: curity restart: always environment: PASSWORD: your-secure-admin-password LICENSE: "your-valid-license-jwt" DB_HOST: postgres # PG容器名称或网络别名 DB_PORT: 5432 DB_NAME: curity_db DB_USER: curity_user DB_PASSWORD: curity_db_password networks: - proxy - db-network # 加入PG所在的网络,确保连通性
4. 解决参数验证错误
- 许可证修复后,重启Curity容器,重新进入基础设置页面。
- 若默认参数仍报错,手动指定所有参数值(如端口、超时时间等),确保在Curity允许的范围内。
内容的提问来源于stack exchange,提问作者FoMM
相关产品推荐
相关产品推荐

