# Docker平台配置修复说明

## 问题描述

Docker语言服务器报告警告：
```
FROM --platform flag should not use a constant value (FROM --platform flag should not use constant value "linux/amd64")
```

## 问题原因

1. **硬编码平台限制**：在Dockerfile中直接使用 `--platform=linux/amd64` 硬编码了平台架构
2. **缺乏灵活性**：无法支持多架构构建
3. **不符合最佳实践**：Docker推荐使用构建参数来动态指定平台

## 修复方案

### 1. Dockerfile修改

**修改前：**
```dockerfile
FROM --platform=linux/amd64 ubuntu:22.04 AS builder
...
FROM --platform=linux/amd64 ubuntu:22.04
```

**修改后：**
```dockerfile
# 构建参数定义平台架构，默认为linux/amd64
ARG BUILDPLATFORM=linux/amd64
ARG TARGETPLATFORM=linux/amd64

FROM --platform=$BUILDPLATFORM ubuntu:22.04 AS builder
...
FROM --platform=$TARGETPLATFORM ubuntu:22.04
```

### 2. 构建脚本更新

**docker-start.sh修改：**
```bash
# 修改前
docker build --platform linux/amd64 -t jtjai_media:latest .

# 修改后
docker build --build-arg BUILDPLATFORM=linux/amd64 --build-arg TARGETPLATFORM=linux/amd64 -t jtjai_media:latest .
```

## 使用方式

### 1. 默认AMD64构建
```bash
# 使用默认参数构建（AMD64）
docker build -t jtjai_media:latest .

# 或使用启动脚本
./docker-start.sh
```

### 2. 指定平台构建
```bash
# 构建ARM64版本
docker build --build-arg BUILDPLATFORM=linux/arm64 --build-arg TARGETPLATFORM=linux/arm64 -t jtjai_media:arm64 .

# 多平台构建
docker buildx build --platform linux/amd64,linux/arm64 -t jtjai_media:multi .
```

### 3. Docker Compose部署
```bash
# docker-compose.yml已配置platform: linux/amd64
docker-compose up -d
```

## 优势

1. **消除警告**：解决Docker语言服务器的平台常量警告
2. **提高灵活性**：支持通过构建参数指定不同平台
3. **保持兼容性**：默认仍为AMD64平台，确保现有部署不受影响
4. **支持多架构**：为将来支持ARM等架构打下基础
5. **符合最佳实践**：遵循Docker官方推荐的构建参数使用方式

## 验证

1. **构建测试**：
   ```bash
   docker build -t jtjai_media:test .
   ```

2. **运行测试**：
   ```bash
   docker run --rm -p 8080:8080 jtjai_media:test
   ```

3. **平台检查**：
   ```bash
   docker inspect jtjai_media:test | grep Architecture
   ```

## 注意事项

1. 默认平台仍为 `linux/amd64`，确保与现有部署兼容
2. 如需构建其他架构版本，需要相应的基础镜像支持
3. 多架构构建需要使用 `docker buildx` 命令
4. ARM架构构建可能需要额外的依赖库配置

## 相关文件

- `Dockerfile` - 主要修改文件
- `docker-start.sh` - 启动脚本更新
- `docker-compose.yml` - 已符合规范，无需修改