# Docker 镜像版本说明

本文档记录了 FFOA 项目使用的所有 Docker 镜像及其版本。

## 📦 核心服务（Core Services）

### PostgreSQL
- **镜像**: `postgres:16-alpine`
- **版本**: PostgreSQL 16 (Alpine Linux)
- **用途**: 主数据库
- **说明**: 使用 Alpine 版本以减小镜像体积
- **Profile**: 默认启动（无需指定 profile）

### Redis
- **镜像**: `redis:7.4-alpine`
- **版本**: Redis 7.4 (Alpine Linux)
- **用途**: 缓存、会话存储、消息队列
- **说明**: 使用 Alpine 版本以减小镜像体积
- **Profile**: 默认启动（无需指定 profile）

## 🛠️ 开发工具（Development Tools）

### Redis Commander
- **镜像**: `rediscommander/redis-commander:latest`
- **版本**: Latest (从 Docker Hub 拉取)
- **用途**: Redis 可视化管理界面
- **端口**: 8081 (映射到 ${REDIS_COMMANDER_PORT})
- **Profile**: `tools`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --tools`

## 🔄 工作流引擎（Workflow Engine）

### Temporal Server
- **镜像**: `temporalio/auto-setup:1.25.2`
- **版本**: 1.25.2
- **用途**: 分布式工作流编排引擎
- **端口**: 
  - 7233 (gRPC)
  - 8233 (HTTP API)
- **Profile**: `temporal`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --temporal`
- **说明**: 使用 auto-setup 版本自动配置数据库

### Temporal UI
- **镜像**: `temporalio/ui:2.30.1`
- **版本**: 2.30.1
- **用途**: Temporal 工作流管理界面
- **端口**: 8080 (映射到 ${TEMPORAL_UI_PORT})
- **Profile**: `temporal`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --temporal`

## 📦 对象存储（Object Storage）

### MinIO
- **镜像**: `minio/minio:RELEASE.2024-09-13T20-26-02Z`
- **版本**: 2024年9月13日发布版
- **用途**: S3 兼容的对象存储服务
- **端口**: 
  - 9000 (API)
  - 9001 (Console)
- **Profile**: `storage`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --storage`

## 📊 监控服务（Monitoring Services）

### Prometheus
- **镜像**: `prom/prometheus:v2.54.1`
- **版本**: 2.54.1
- **用途**: 监控指标收集和存储
- **端口**: 9090 (映射到 ${PROMETHEUS_PORT})
- **Profile**: `monitoring`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --monitoring`
- **配置文件**: `./monitoring/prometheus.yml`

### Grafana
- **镜像**: `grafana/grafana:11.3.0`
- **版本**: 11.3.0
- **用途**: 监控数据可视化和仪表盘
- **端口**: 3000 (映射到 ${GRAFANA_PORT})
- **Profile**: `monitoring`
- **启动命令**: `./scripts/deploy/deploy.sh ENV up --monitoring`
- **默认用户**: admin (密码由 ${GRAFANA_PASSWORD} 设置)

## 🧠 知识库（Knowledge / RAGFlow）

### RAGFlow
- **镜像**: `${RAGFLOW_IMAGE}`
- **版本**: 按环境变量配置（建议稳定版 v0.23.1）
- **用途**: 知识库检索 + 问答引擎
- **端口**:
  - 80 (Web HTTP)
  - 443 (Web HTTPS)
  - 9380 (API)
  - 9381 (Admin)
- **Profile**: `knowledge`

### RAGFlow MySQL
- **镜像**: `mysql:8.0.39`
- **用途**: RAGFlow 元数据存储
- **端口**: 3306 (映射到 ${RAGFLOW_MYSQL_PORT})
- **Profile**: `knowledge`

### RAGFlow MinIO
- **镜像**: `quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Z`
- **用途**: RAGFlow 对象存储
- **端口**:
  - 9000 (API)
  - 9001 (Console)
- **Profile**: `knowledge`

### RAGFlow Redis (Valkey)
- **镜像**: `valkey/valkey:8`
- **用途**: RAGFlow 缓存与任务队列
- **端口**: 6379 (映射到 ${RAGFLOW_REDIS_PORT})
- **Profile**: `knowledge`

### RAGFlow Elasticsearch
- **镜像**: `elasticsearch:${RAGFLOW_ES_STACK_VERSION}`
- **用途**: RAGFlow 文档索引
- **端口**: 9200 (映射到 ${RAGFLOW_ES_PORT})
- **Profile**: `knowledge`

## 📋 服务启动分组

### 基础服务（Basic）
```bash
./scripts/deploy/deploy.sh ENV up --basic
```
- PostgreSQL
- Redis

### 核心服务（Core）- 默认
```bash
./scripts/deploy/deploy.sh ENV up
# 或
./scripts/deploy/deploy.sh ENV up --core
```
- PostgreSQL
- Redis

### 所有服务（All）
```bash
./scripts/deploy/deploy.sh ENV up --all
```
- PostgreSQL
- Redis
- Temporal Server
- Temporal UI
- MinIO
- Prometheus
- Grafana
- Redis Commander

### 按功能分组启动
```bash
# 仅启动工作流引擎
./scripts/deploy/deploy.sh ENV up --temporal

# 仅启动对象存储
./scripts/deploy/deploy.sh ENV up --storage

# 仅启动监控服务
./scripts/deploy/deploy.sh ENV up --monitoring

# 仅启动开发工具
./scripts/deploy/deploy.sh ENV up --tools
```

## 🔄 版本更新策略

### 生产环境
- ✅ 使用明确的版本标签（不使用 `latest`）
- ✅ 在 UAT 环境充分测试后才更新
- ✅ 记录版本变更和原因
- ✅ 保持版本稳定性

### 开发工具
- ⚠️  可以使用 `latest` 标签（如 Redis Commander）
- 这些工具不影响生产稳定性
- 定期更新以获取新功能

## 📝 版本选择说明

### PostgreSQL 16-alpine
- 最新稳定的 LTS 版本
- Alpine 版本体积小、安全性高
- 广泛的社区支持

### Redis 7.4-alpine
- 最新稳定版本
- 包含性能改进和新特性
- Alpine 版本体积小

### Temporal 1.25.2
- 稳定的生产版本
- 经过充分测试
- 避免使用 1.26.x 的潜在问题

### MinIO RELEASE.2024-09-13
- 验证过的稳定版本
- S3 API 兼容性好
- 性能和稳定性经过验证

### Prometheus 2.54.1
- 使用 v2.x LTS 版本
- 避免 v3.x 的 breaking changes
- 稳定且广泛使用

### Grafana 11.3.0
- 最新稳定的 v11 系列
- 向后兼容性好
- 丰富的插件生态

## ⚠️ 版本更新注意事项

1. **主版本升级**
   - 必须阅读 CHANGELOG 和 Breaking Changes
   - 在开发环境测试
   - 在 UAT 环境验证
   - 备份数据后再升级生产环境

2. **次版本升级**
   - 查看新特性和改进
   - 在 UAT 环境测试
   - 逐步升级生产环境

3. **补丁版本升级**
   - 通常是 bug 修复
   - 可以快速升级
   - 建议在维护窗口进行

## 🔗 官方文档链接

- PostgreSQL: https://hub.docker.com/_/postgres
- Redis: https://hub.docker.com/_/redis
- Temporal: https://hub.docker.com/r/temporalio/auto-setup
- MinIO: https://hub.docker.com/r/minio/minio
- Prometheus: https://hub.docker.com/r/prom/prometheus
- Grafana: https://hub.docker.com/r/grafana/grafana
- Redis Commander: https://github.com/joeferner/redis-commander

## 📅 最后更新

- **日期**: 2026-02-03
- **更新人**: System
- **变更**: 新增 RAGFlow 相关镜像说明并校准 Redis Commander 镜像来源
