Компиляция модуля в Docker завершается неудачно во время сборки, но успешно при интерактивном запуске - PullRequest
0 голосов
/ 05 сентября 2018

Я новичок в Docker и пытаюсь создать свой первый контейнер, чтобы сделать установку набора инструментов очень простой. Я использую miniconda2 на базовом образе CentOS 7 и использую собственную среду анаконды. Мой 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

Установка идет без заминки. Я прочитал эту проблему , но это не помогло мне в моем стремлении построить рабочий контейнер!

Одна мысль, которая у меня возникла, заключается в том, что каким-то образом среда anaconda не активируется во время сборки контейнера (я следовал советам в Интернете о том, как использовать среды anaconda с докером), но когда я запускаю интерактивную оболочку в контейнере, anaconda среда активируется. Однако я не уверен, как это отладить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...