-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.dev
More file actions
91 lines (77 loc) · 2.18 KB
/
Dockerfile.dev
File metadata and controls
91 lines (77 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# PeerPortal AI智能体系统 v2.0 - 开发环境 Dockerfile
# 包含开发工具和调试支持
FROM python:3.11-slim
# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PYTHONPATH=/app \
DEBIAN_FRONTEND=noninteractive \
ENV=development
# 安装系统依赖(包含开发工具)
RUN apt-get update && apt-get install -y --no-install-recommends \
# 构建工具
build-essential \
libpq-dev \
gcc \
g++ \
# 网络和调试工具
curl \
wget \
netcat-openbsd \
telnet \
# 版本控制
git \
# PDF和文档处理
poppler-utils \
# OCR支持
tesseract-ocr \
tesseract-ocr-chi-sim \
tesseract-ocr-chi-tra \
# 图像处理
libmagic1 \
# 开发工具
vim \
htop \
tree \
# 清理缓存
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
# 设置工作目录
WORKDIR /app
# 升级pip并安装Python开发工具
RUN pip install --upgrade pip setuptools wheel
# 复制requirements文件并安装依赖(使用完整版依赖)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt \
--timeout 300 \
--retries 5 \
-i https://pypi.tuna.tsinghua.edu.cn/simple/ \
--trusted-host pypi.tuna.tsinghua.edu.cn
# 安装额外的开发工具
RUN pip install --no-cache-dir \
black \
flake8 \
mypy \
isort \
pytest-cov \
pytest-xdist \
ipython \
jupyter \
debugpy
# 创建必要的目录
RUN mkdir -p /app/{uploads,logs,vector_store,knowledge_base}
# 复制应用代码(开发环境通常使用挂载卷)
COPY . .
# 设置权限(开发环境可以使用root)
RUN chmod +x docker-entrypoint.sh
# 暴露端口(包含调试端口)
EXPOSE 8000 5678
# 添加标签
LABEL maintainer="PeerPortal Team" \
version="2.0-dev" \
description="PeerPortal AI智能体系统 - 开发环境"
# 开发环境健康检查(更宽松)
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=2 \
CMD curl -f http://localhost:8000/health || exit 1
# 开发环境启动命令(支持热重载)
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload", "--access-log"]