# 使用 TensorFlow 官方的 GPU 镜像,2.10.0-gpu FROM tensorflow/tensorflow:2.10.0-gpu ENV DEBIAN_FRONTEND=noninteractive # 替换为BFSU的镜像源并安装系统依赖 RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.bfsu.edu.cn/ubuntu/|g' /etc/apt/sources.list && \ apt-get update -yy && \ apt-get install -yy --no-install-recommends ffmpeg libsm6 libxext6 && \ rm -rf /var/lib/apt/lists/* && \ apt-get clean # 设置pip使用BFSU的PyPI镜像源并安装Python库和DeepLabCut RUN pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple && \ pip install "deeplabcut[tf]" numpy==1.24.0 decorator==4.4.2 fastapi uvicorn && \ pip list # 修复 TensorFlow 与 protobuf 的兼容性问题 RUN pip install protobuf==3.20.1 # 修复容器权限问题,确保 DeepLabCut 可以正确运行 RUN chmod a+rwx -R /usr/local/lib/python3.*/dist-packages/deeplabcut/pose_estimation_tensorflow/models/pretrained # 复制 kunin-dlc-240814 目录到容器中 COPY kunin-dlc-240814 /app/kunin-dlc-240814 # 复制应用代码 COPY app.py /app/app.py # 设置工作目录 WORKDIR /app # 运行服务 CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8080"]