Как сделать настройку, сделать и сделать установку в сборке Docker - PullRequest
1 голос
/ 14 октября 2019

Постановка задачи

Я строю докер моего конвейера вычислительной биоинформатики, который содержит множество инструментов, которые будут вызываться на разных этапах конвейера. В этом процессе я пытаюсь добавить один инструмент The ViennaRNA Package , который будет загружен и скомпилирован с использованием исходного кода. Я пробовал много способов скомпилировать его в сборке Docker (как показано ниже), но ни один из них не работает.

Неудачные попытки

Код-1:

FROM jupyter/scipy-notebook

USER root

MAINTAINER Vivek Ruhela <vivekr@iiitd.ac.in>

# Copy the application folder inside the container
ADD . /test1

# Set the default directory where CMD will execute
WORKDIR /test1

# Set environment variable
ENV HOME /test1 

# Install RNAFold
RUN wget https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/ViennaRNA-2.4.14.tar.gz -P ~/Tools
RUN tar xvzf ~/Tools/ViennaRNA-2.4.14.tar.gz -C ~/Tools  
WORKDIR "~/Tools/ViennaRNA-2.4.14/"
RUN ./configure
RUN make && make check && make install 

Ошибка: файл конфигурации не найден

Код-2:

FROM jupyter/scipy-notebook

USER root

MAINTAINER Vivek Ruhela <vivekr@iiitd.ac.in>

# Copy the application folder inside the container
ADD . /test1

# Set the default directory where CMD will execute
WORKDIR /test1

# Set environment variable
ENV HOME /test1 

# Install RNAFold
RUN wget https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/ViennaRNA-2.4.14.tar.gz -P ~/Tools
RUN tar xvzf ~/Tools/ViennaRNA-2.4.14.tar.gz -C ~/Tools  
RUN bash ~/Tools/ViennaRNA-2.4.14/configure
WORKDIR "~/Tools/ViennaRNA-2.4.14/"
RUN make && make check && make install 

Ошибка: make: *** Не указаны цели и не найден make-файл. Стоп.

Я также попробовал другой способ явного определения местоположения файла, например

RUN make -C ~/Tools/ViennaRNA-2.4.14/

Если этот подход не работает.

Ожидаемая процедура

Я много раз устанавливал этот инструмент в своей системе, используя стандартную процедуру, указанную в документации к инструменту как

./configure
make
make check
make install

Аналогично для докера следующий код должен работать

WORKDIR ~/Tools/ViennaRNA-2.4.14/
RUN ./configure && make && make check && make install

Но этот код не работает, потому что я не вижу никакого эффекта от workdir. Я проверил, что configure правильно создает make-файл в моей системе. Так что он также должен создать файл make в Docker. Любые предложения о том, почему этот код не работает.

1 Ответ

1 голос
/ 14 октября 2019

вы извлекаете все файлы в папке Tools, которая находится в home, попробуйте это:

WORKDIR $HOME/Tools/ViennaRNA-2.4.14
RUN ./configure
RUN make && make check && make install 

проблема в том, что WORKDIR ~/Tools/ViennaRNA-2.4.14/ переведено точно в ~/Tools/ViennaRNA-2.4.14/, который созданпапка с именем ~, вы также можете использовать $HOME вместо

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