首页
/ AdelaiDet项目Docker环境构建指南

AdelaiDet项目Docker环境构建指南

2025-07-09 07:06:18作者:秋阔奎Evelyn

概述

AdelaiDet是一个基于Detectron2的目标检测框架,为研究人员和开发者提供了先进的检测算法实现。本文将详细介绍如何通过Dockerfile构建AdelaiDet项目的开发环境,帮助开发者快速搭建一致的开发环境。

基础镜像选择

Dockerfile以nvidia/cuda:10.2-devel-ubuntu18.04作为基础镜像,这个选择考虑了以下几个关键因素:

  1. CUDA 10.2版本与PyTorch 1.5.0兼容性良好
  2. Ubuntu 18.04 LTS提供了稳定的系统环境
  3. devel版本包含了完整的CUDA开发工具链

系统依赖安装

构建过程首先安装了必要的系统依赖:

RUN apt-get update && apt-get install -y libglib2.0-0 && apt-get clean
RUN apt-get install -y wget htop byobu git gcc g++ vim libsm6 libxext6 libxrender-dev lsb-core

这些依赖包括:

  • 基础工具:wget、git、gcc/g++编译器
  • 系统监控工具:htop
  • 终端增强工具:byobu、vim
  • 图形库依赖:libsm6、libxext6等

Anaconda环境配置

项目使用Anaconda管理Python环境:

RUN cd /root && wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
RUN cd /root && bash Anaconda3-2020.07-Linux-x86_64.sh -b -p ./anaconda3

这里选择了Anaconda3 2020.07版本,通过非交互式安装(-b参数)将Anaconda安装到/root/anaconda3目录。

PyTorch安装

AdelaiDet基于PyTorch框架,Dockerfile中安装了特定版本的PyTorch:

RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda install -y pytorch==1.5.0 torchvision cudatoolkit=10.2 -c pytorch"

关键点:

  • PyTorch 1.5.0版本
  • 匹配的torchvision版本
  • 与基础镜像一致的CUDA 10.2工具包

项目依赖安装

AdelaiDet依赖于Detectron2框架,构建过程包含以下步骤:

  1. 克隆Detectron2仓库并安装:
RUN git clone https://github.com/facebookresearch/detectron2.git
RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda activate base && cd detectron2 && python setup.py build develop"
  1. 克隆AdelaiDet仓库并安装:
RUN git clone https://github.com/aim-uofa/AdelaiDet.git adet
WORKDIR adet
RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda activate base && python setup.py build develop"

清理工作

构建完成后,Dockerfile删除了下载的Anaconda安装包以减小镜像体积:

RUN rm /root/Anaconda3-2020.07-Linux-x86_64.sh

使用建议

  1. 构建镜像时,建议使用以下命令:
docker build -t adelai-det .
  1. 运行容器时,可以挂载本地代码目录:
docker run -it --gpus all -v /path/to/local/code:/root/code adelai-det
  1. 开发过程中,可以使用byobu或tmux保持会话

常见问题解决

  1. CUDA版本不匹配:确保宿主机CUDA版本与镜像中的10.2版本兼容
  2. 内存不足:构建过程中可能需要增加Docker内存限制
  3. 网络问题:国内用户可以考虑使用镜像源加速下载

总结

本文详细解析了AdelaiDet项目的Docker环境构建过程,通过Dockerfile可以快速搭建一致的开发环境,避免了因环境差异导致的各种问题。开发者可以根据实际需求调整Dockerfile,例如更换Python版本或CUDA版本,但需要注意各组件之间的兼容性。