# Docker 配置快速设置

> 简化版配置指南

---

## 📁 目录结构

```
docker/
├── README.md                   # 完整文档
├── SETUP.md                    # 本文件（快速设置）
├── .env -> ../.env            # 软链接到根目录统一配置 ✨
├── .gitignore                 # Git 忽略规则
├── docker-compose.yml         # 统一 Compose 配置（多环境）
└── ragflow/                   # RAGFlow 配置与模板
```

> **注意**: 环境变量统一管理，详见 [ENV_SETUP_GUIDE.md](../ENV_SETUP_GUIDE.md)

---

## 🚀 快速开始

### 开发环境（3 步）

```bash
# 1. 配置环境变量
bash scripts/env/setup-env.sh development

# 2. 启动服务
docker compose -f docker/docker-compose.yml --profile core up -d

# 3. 验证
docker compose -f docker/docker-compose.yml ps
```

**或使用脚本（更简单）**:
```bash
bash scripts/dev/dev.sh
# 选择: 8 - 启动 Docker 服务
```

### 生产环境（4 步）

```bash
# 1. 配置生产环境变量
bash scripts/env/setup-env.sh production

# 2. ⚠️  修改密码（必须！）
vim .env

# 3. 启动服务
docker compose -f docker/docker-compose.yml --profile core up -d

# 4. 验证
docker compose -f docker/docker-compose.yml ps
```

---

## 🔑 环境变量说明

项目使用统一的环境变量配置方案。详细说明请参考：[ENV_SETUP_GUIDE.md](../ENV_SETUP_GUIDE.md)

### 配置方式

```bash
# 开发环境
bash scripts/env/setup-env.sh development

# UAT环境
bash scripts/env/setup-env.sh uat

# 生产环境
bash scripts/env/setup-env.sh production
```

### Docker 集成

Docker 通过软链接 `docker/.env -> ../.env` 自动使用根目录的统一配置。

### 主要变量

**数据库**:
- `DATABASE_URL` - PostgreSQL 连接字符串
- `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_DB`

**缓存**:
- `REDIS_PASSWORD` - Redis 密码

**对象存储**:
- `MINIO_ROOT_USER`, `MINIO_ROOT_PASSWORD`

**监控（生产）**:
- `GRAFANA_PASSWORD` - Grafana 管理员密码

### 安全提示

- ⚠️ 生产环境必须修改所有默认密码
- 🔒 使用强密码（至少 16 位）
- 🔐 密码不要提交到 Git

---

## 📊 服务端口

### 开发环境
- PostgreSQL: `5432`
- Redis: `6379`
- pgAdmin: `http://localhost:5050`
- Temporal UI: `http://localhost:8080`
- MinIO Console: `http://localhost:9001`

### 生产环境
- PostgreSQL: `6001`
- Redis: `6002`
- Temporal UI: `http://localhost:6005`
- MinIO Console: `http://localhost:6007`
- Prometheus: `http://localhost:6009`
- Grafana: `http://localhost:6012`

---

## 🛠️ 常用命令

### 启动服务
```bash
# 核心服务（PostgreSQL + Redis）
docker compose -f docker/docker-compose.yml --profile core up -d

# 加上可选服务（示例：Temporal + MinIO）
docker compose -f docker/docker-compose.yml --profile core --profile temporal --profile storage up -d
```

### 停止服务
```bash
# 停止（保留数据）
docker compose -f docker/docker-compose.yml down

# 停止并删除数据
docker compose -f docker/docker-compose.yml down -v
```

### 查看状态
```bash
docker compose -f docker/docker-compose.yml ps
```

### 查看日志
```bash
# 所有服务
docker compose -f docker/docker-compose.yml logs -f

# 特定服务
docker compose -f docker/docker-compose.yml logs -f postgres
```

---

## ⚠️ 重要提示

1. **环境变量配置**:
   - 项目使用统一的 `.env` 文件（根目录）
   - Docker 通过软链接自动读取
   - 详见：[ENV_SETUP_GUIDE.md](../ENV_SETUP_GUIDE.md)

2. **Git 提交**:
   - ✅ 可提交: `.env.example`
   - ❌ 不提交: `.env`, `.env.local`, `.env.*.local`

3. **密码安全**:
   - 生产环境必须修改所有默认密码
   - 使用强密码（至少 16 位）
   - 使用密码管理工具存储

---

## 📖 更多信息

- 完整文档: [README.md](README.md)
- 环境配置: [ENV_SETUP_GUIDE.md](../ENV_SETUP_GUIDE.md)
- 部署指南: [deployment-quickstart.md](../docs/setup/deployment-quickstart.md)
- 脚本帮助: `bash scripts/dev/dev.sh help`

---

**最后更新**: 2026-02-03
