之前的python環境,使用ubuntu安裝pip來安裝python依賴,但是遇到缺少某些庫的版本,比如一個項目需要用到faiss,pip只有最新的1.5.3版本,但是這個版本使用了較新的CPU指令,在老服務器上運行報錯:
Illegal instruction (core dumped) - in new version of FAISS #885
github上提示安裝舊版本:
If anyone else is struggling and wanna go back to previous working version, use: conda install faiss-cpu=1.5.1 -c pytorch -y
遺憾的是,下面的命令不成功,沒有1.5.1版本:
pip install faiss-cpu==1.5.1
轉而投向conda。
首先,下載最新的conda安裝命令:
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
然后構建conda的基礎鏡像,還是以ubuntu:16.04為底包,Dockerfile如下:
from ubuntu:16.04
RUN apt-get update && apt-get install -y --no-install-recommends \
bzip2 \
g++ \
git \
graphviz \
libgl1-mesa-glx \
libhdf5-dev \
openmpi-bin \
wget && \
rm -rf /var/lib/apt/lists/*
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
ADD ./Anaconda3-2019.07-Linux-x86_64.sh ./anaconda.sh
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH /opt/conda/bin:$PATH
RUN /bin/bash ./anaconda.sh -b -p /opt/conda && rm ./anaconda.sh && ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && echo "conda activate base" >> ~/.bashrc && find /opt/conda/ -follow -type f -name '*.a' -delete && find /opt/conda/ -follow -type f -name '*.js.map' -delete && /opt/conda/bin/conda clean -afy
CMD [ "/bin/bash" ]
構建:
docker build -t conda3:1.0 .
后面,就可以以conda3:1.0 .
為基礎鏡像構建需要的鏡像,比如我們需要安裝faiss-cpu 1.5.1版本
from conda3:1.0
RUN conda install pytorch -y
RUN conda install faiss-cpu=1.5.1 -c pytorch -y
CMD [ "/bin/bash" ]
構建:
docker build -t conda-faiss:1.0 .
作者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。