«RUN ./configure» => не найден в Docker, после успешного выполнения «RUN cd srcdir && chmod + x ./configure» - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь создать swig внутри Dockerfile. Однако, когда я пытаюсь запустить ./configure, я получаю сообщение о том, что он не найден, хотя он определенно есть.

Вот рабочий пример установки Swig с использованием Dockerfile:

FROM nvidia/cuda:7.5-cudnn4-devel
MAINTAINER Tim O'Shea <tim.oshea753@gmail.com>
# install swig
RUN apt-get install -y g++
RUN apt-get install -y libpcre3 libpcre3-dev
RUN wget "http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz"
RUN chmod 777 swig-3.0.12.tar.gz
RUN tar -xzvf swig-3.0.12.tar.gz
RUN cd swig-3.0.12 && chmod +x ./configure && ls -l
RUN ./configure --prefix=$(pwd)/swigtool
RUN make
RUN make install

1 Ответ

1 голос
/ 21 марта 2019

Проблема в этих строках в частности:

RUN cd swig-3.0.12 && chmod +x ./configure && ls -l
RUN ./configure --prefix=$(pwd)/swigtool

Обратите внимание, что RUN работает только для каждого слоя, что означает, что каждый раз, когда вам нужно использовать RUN cd swig-3.0.12, вы можете добавить их к одному слою, как этот

RUN cd swig-3.0.12 && /configure --prefix="$PWD/swigtool" && make && make install

Инструкция RUN выполнит любые команды в новом слое поверх текущего изображения и передаст результаты, которые объяснены в RUN в Dockerfile .

В качестве альтернативы вы можете добавить это перед всеми командами, которые должны быть выполнены в каталоге swig-3.0.12, например:

WORKDIR /swig-3.0.12
RUN ./configure --prefix="$PWD/swigtool"
RUN make
RUN make install
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...