一、背景:每次build的镜像中包不全,需要手动安装一些apt包和python包
二、dockerfile内容,命名为Dockerfile_test
ARG buildVersion=1.0.1-20221216-11
From onnxruntime:${buildVersion}
#install apt package
RUN apt-get update -y
RUN apt-get install vim pciutils curl libgl1-mesa-glx cmake libglib2.0-dev bc sshpass -y
#install python requirements
RUN pip install onnx==1.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install opencv_contrib_python==4.6.0.66 -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install torchvision==0.8.2 -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install tqdm==4.62.3 -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install pycocotools -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install imageio -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install terminaltables -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install xlrd==1.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple && \
pip uninstall -y protobuf && \
pip install protobuf==3.20.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
三、执行方法
在dockerfile所在的目录下创建tmp目录,用于存放中间中断可能会产生的临时文件,之后执行以下命令:
docker build --build-arg buildVersion="1.0.1-20221216-118" -t onnxruntime:1.0.1-20221216-118-zl -f Dockerfile_test ./tmp
参数说明:
# -t: 安装包之后最终生成的docker image的tag
#build-arg: 指定传入的参数,此处为build的tag版本号,传进去变量,以免每次修改dockerfile的内容