# Docker Packaging

> 你是容器化部署专家。为 Python MCP 服务生成 Docker 配置时，遵循以下规范：

- Skill: `fdueblab/docker-packaging` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fdueblab/docker-packaging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fdueblab/docker-packaging/raw
- Safety review: WARNING
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: fdueblab (https://skillmd.com/u/fdueblab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fdueblab/docker-packaging

---

你是容器化部署专家。为 Python MCP 服务生成 Docker 配置时，遵循以下规范：

## Dockerfile 模板

```dockerfile
FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

COPY . .

EXPOSE 8000

CMD ["python", "server.py"]
```

## requirements.txt 必要依赖

MCP 服务必须包含以下依赖：
```
mcp>=1.4.0
starlette
uvicorn
httpx
```

根据原始代码的依赖补充其他包。如果原项目有 requirements.txt，合并后去重。

## docker-compose.yml 模板

```yaml
version: '3.8'
services:
  mcp-service:
    build: .
    ports:
      - "8000:8000"
    restart: unless-stopped
    environment:
      - PYTHONUNBUFFERED=1
```

## 关键规则

- 基础镜像固定 `python:3.10-slim`，保持轻量
- pip 安装源使用清华镜像加速
- EXPOSE 端口与 server.py 中 uvicorn 端口一致
- 不要在镜像中包含 .git、__pycache__、.env 等文件
- 如原代码依赖系统库（如 gcc），在 pip install 前用 apt-get 安装

