- requirements.txt: GPU 依赖从注释改为正式声明,统一版本 PyTorch 2.1.2+cu121, TensorRT 8.6.1.6, ultralytics 8.3.5 NumPy 1.24→1.26.4, OpenCV 4.8.0.74→76, 新增 onnx/Pillow 等 - Dockerfile: 基于 nvcr.io/nvidia/tensorrt:23.08-py3 (CUDA 12.1 + cuDNN 8.9 + TRT 8.6) - docker-compose.yml: GPU 访问、host 网络、卷挂载、日志限制 - .dockerignore: 排除模型/数据/日志等大文件 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
52 lines
1.4 KiB
Docker
52 lines
1.4 KiB
Docker
# ============================================================
|
||
# 基础镜像:NVIDIA TensorRT 23.08
|
||
# 内含:CUDA 12.1.1 | cuDNN 8.9.3 | TensorRT 8.6.1.6 | Python 3.10
|
||
# ============================================================
|
||
FROM nvcr.io/nvidia/tensorrt:23.08-py3
|
||
|
||
LABEL maintainer="AI Edge Architecture Team"
|
||
LABEL description="Edge AI Inference Service - YOLOv11n + TensorRT"
|
||
|
||
# 设置时区
|
||
ENV TZ=Asia/Shanghai
|
||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||
|
||
# 系统依赖(视频解码、OpenCV 运行时)
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
ffmpeg \
|
||
libsm6 \
|
||
libxext6 \
|
||
libgl1-mesa-glx \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
WORKDIR /app
|
||
|
||
# 先复制依赖文件,利用 Docker 层缓存
|
||
COPY requirements.txt .
|
||
|
||
# 安装 PyTorch(CUDA 12.1 版本)+ 其余依赖
|
||
RUN pip install --no-cache-dir \
|
||
torch==2.1.2 torchvision==0.16.2 \
|
||
--index-url https://download.pytorch.org/whl/cu121 \
|
||
&& pip install --no-cache-dir -r requirements.txt
|
||
|
||
# 复制项目代码
|
||
COPY __init__.py .
|
||
COPY main.py .
|
||
COPY algorithms.py .
|
||
COPY build_engine.py .
|
||
COPY config/ ./config/
|
||
COPY core/ ./core/
|
||
COPY utils/ ./utils/
|
||
|
||
# 模型和数据通过卷挂载,不打入镜像
|
||
# -v /path/to/models:/app/models
|
||
# -v /path/to/data:/app/data
|
||
|
||
# 日志目录
|
||
RUN mkdir -p /app/logs /app/data
|
||
|
||
EXPOSE 9001
|
||
|
||
CMD ["python", "main.py"]
|