openlmis/diagnosticsOpenLMIS Health & Information Service是OpenLMIS(开源***物流管理信息系统)的核心组件之一,专注于提供健康数据收集、处理和信息服务功能。该Docker镜像封装了完整的服务运行环境,便于快速部署和集成到OpenLMIS生态系统中。
主要用途包括:***资源监控数据聚合、健康指标追踪、信息报告生成以及与其他OpenLMIS服务的数据交互。
bashdocker run -d \ --name openlmis-health-service \ -p 8080:8080 \ -e SPRING_PROFILES_ACTIVE=production \ -e DB_HOST=db.example.com \ -e DB_NAME=openlmis_health \ -e DB_USERNAME=dbuser \ -e DB_PASSWORD=dbpass \ -e OPENLMIS_AUTH_SERVER_URL=[***] \ -v openlmis-health-data:/var/lib/openlmis/health \ openlmis/health-information-service:latest
yamlversion: '3.8' services: health-service: image: openlmis/health-information-service:latest container_name: openlmis-health-service restart: always ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=production - SERVER_PORT=8080 - DB_HOST=db - DB_PORT=5432 - DB_NAME=openlmis_health - DB_USERNAME=postgres - DB_PASSWORD=securepassword - OPENLMIS_AUTH_SERVER_URL=[***] - LOGGING_LEVEL_ROOT=INFO - CACHE_TTL=3600 volumes: - health-data:/var/lib/openlmis/health - ./config:/etc/openlmis/health depends_on: - db networks: - openlmis-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] interval: 30s timeout: 10s retries: 3 db: image: postgres:13 container_name: openlmis-health-db restart: always environment: - POSTGRES_DB=openlmis_health - POSTGRES_USER=postgres - POSTGRES_PASSWORD=securepassword volumes: - postgres-data:/var/lib/postgresql/data networks: - openlmis-network volumes: health-data: postgres-data: networks: openlmis-network: driver: bridge
| 环境变量名称 | 描述 | 必需 | 默认值 |
|---|---|---|---|
| SPRING_PROFILES_ACTIVE | 激活的Spring配置文件 | 否 | default |
| SERVER_PORT | 服务监听端口 | 否 | 8080 |
| DB_HOST | 数据库主机地址 | 是 | - |
| DB_PORT | 数据库端口 | 否 | 5432 |
| DB_NAME | 数据库名称 | 是 | - |
| DB_USERNAME | 数据库用户名 | 是 | - |
| DB_PASSWORD | 数据库密码 | 是 | - |
| DB_SSL_MODE | 数据库SSL连接模式 | 否 | disable |
| OPENLMIS_AUTH_SERVER_URL | 认证服务器URL | 是 | - |
| OPENLMIS_SERVICE_TOKEN | 服务间通信令牌 | 是 | - |
| CACHE_TTL | 数据缓存时间(秒) | 否 | 3600 |
| REPORT_EXPORT_PATH | 报表导出目录 | 否 | /var/lib/openlmis/health/exports |
| LOGGING_LEVEL_ROOT | 日志级别 | 否 | INFO |
| MAX_UPLOAD_SIZE | 最大上传文件大小 | 否 | 10MB |
服务支持通过外部配置文件进行高级配置,可通过挂载配置目录实现:
bash-v ./custom-config:/etc/openlmis/health/config
配置文件结构:
custom-config/ ├── application.yml # 主配置文件 ├── application-production.yml # 生产环境配置 ├── logback.xml # 日志配置 └── report-templates/ # 报表模板目录
建议为以下目录创建持久卷:
/var/lib/openlmis/health - 服务数据存储目录/var/log/openlmis - 日志存储目录默认情况下,服务监听容器内8080端口,可通过-p参数映射到主机端口:
bash-p 8080:8080 # 将容器8080端口映射到主机8080端口
若使用服务发现机制,可配置:
bash-e EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=[***]
通过环境变量配置CORS:
bash-e CORS_ALLOWED_ORIGINS=[***] -e CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE -e CORS_ALLOWED_HEADERS=Content-Type,Authorization
服务内置健康检查端点,可通过以下方式配置Docker健康检查:
bash--health-cmd "curl -f http://localhost:8080/actuator/health || exit 1" \ --health-interval 30s \ --health-timeout 10s \ --health-retries 3
健康检查端点: /actuator/health
完整健康信息(需认证): /actuator/health/detail
通过环境变量设置不同组件的日志级别:
bash-e LOGGING_LEVEL_ROOT=INFO \ -e LOGGING_LEVEL_ORG_OPENLMIS=DEBUG \ -e LOGGING_LEVEL_ORG_HIBERNATE=WARN
默认日志输出到标准输出和文件,文件日志位于/var/log/openlmis/health-service.log。
要配置日志轮转,可挂载自定义logback配置:
bash-v ./logback.xml:/etc/openlmis/health/logback.xml
症状: 服务启动失败,日志中出现数据库连接错误。
解决方法:
症状: 无法访问服务API,返回401或403错误。
解决方法:
症状: 报表生成请求失败或生成的报表为空。
解决方法:
症状: 服务响应缓慢,处理时间长。
解决方法:
-e JAVA_OPTS="-Xms512m -Xmx1g"更新服务到最新版本:
bash# 停止并删除当前容器 docker stop openlmis-health-service docker rm openlmis-health-service # 拉取最新镜像 docker pull openlmis/health-information-service:latest # 使用原配置重新启动 docker run [原有参数] openlmis/health-information-service:latest
注意: 版本更新前建议备份数据卷和配置文件,重大版本更新可能需要数据库迁移。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务