在docker中编译模块在构建期间失败,但在交互式运行时成功

时间:2018-09-04 21:10:25

标签: docker anaconda dockerfile

我是docker的新手,它试图创建我的第一个容器以使一套工具的安装非常简单。我在CentOS 7基本映像上使用miniconda2,并在自己的anaconda环境中使用。我的Dockerfile看起来像这样:

FROM conda/miniconda2-centos7

WORKDIR /home

#Install relevant dependencies with yum
RUN yum install -y (relevant packages)

#Set environment variables
ENV LD_LIBRARY_PATH .:/home/lib:/usr/local/lib:$LD_LIBRARY_PATH
ENV PYTHONPATH /home/lib/python2.7/site-packages:$PYTHONPATH
ENV HOME /home

#Copy the environment.yaml file and create the conda env
COPY environment.yaml /tmp/
RUN conda env create -f /tmp/environment.yaml
RUN echo "source activate environment" > ~/.bashrc
ENV PATH /opt/conda/envs/env/environment:$PATH
ENV CONDA_DEFAULT_ENV environment

#Install (module)
RUN mkdir /home/(module)
COPY <module> /home/(module)/
WORKDIR /home/(module)
RUN make all install

构建在最后一行失败,并且我遇到的错误如下:

make: cython: Command not found
make: *** [cython/(module).cpp] Error 127

但是,如果我注释掉最后一行,则成功构建并运行

docker run -it docker_test
(env) bash-4.2# make all install

安装顺利进行。我已经读过this issue,但是它对我构建工作容器的帮助没有帮助!

我曾经有一个想法是,在构建容器时,anaconda环境无法激活(我遵循在线建议如何在docker上使用anaconda环境),但是当我在容器中启动交互式shell时,anaconda环境激活。但是,我不确定如何调试它。

0 个答案:

没有答案