Intereting Posts
Должны ли файлы с базового изображения Docker присутствовать в производном изображении? Как запустить существующий остановленный контейнер и войти в bash? Докер: как закрепить и развернуть несколько экземпляров приложения LAMP AWS BeansTalk выставляет порт докера Как я могу скопировать конфигурацию контейнера Docker при передаче изображения? Использование Docker для создания автономной версии с приложения Django У вас есть реестр Docker с учетными данными? Докер, странная проблема с разрешениями в скопированных ресурсах Обслуживание из источников внутри контейнера Docker Удаление файлов докеров после удаления Веб-узел Tornado в докере (сеть :: ERR_CONNECTION_REFUSED) Как использовать докер с градиентом, имея приватный сервер реестра докеров Кибана не может достичь результатов поиска Контейнер с одним докером, немного превосходящий его хост в производительности процессора: Почему? Изменить местоположение устройства Docker – Windows

Команда Dockerfile RUN возвращает «Нет такого файла или каталога»

Попытка создать файл Docker для создания системы, которая включает в себя пользовательскую сборку Python 3 в системе CentOS 7. Мой файл Docker выглядит следующим образом:

FROM centos:7 RUN yum -y update RUN yum -y upgrade RUN yum -y groupinstall "Development Tools" RUN yum -y install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel ADD http://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz Python-3.5.2.tgz RUN ["tar","zxf","Python-3.5.2.tgz"] WORKDIR "/Python-3.5.2" RUN "./configure --prefix=/usr/local" RUN "make" RUN "make altinstall" RUN ["rm","-rf","Python-3.5.2"] RUN yum -y clean headers &&\ yum -y clean packages &&\ yum -y clean metadata COPY pack/*.py /usr/src/StorageService/ RUN ["/usr/local/bin/pip3.5","install","virtualenv"] WORKDIR "/usr/src/StorageService" RUN ["virtualenv","--python=python3","--always-copy","SSEnv"] RUN ["source","SSEnv/bin/activate"] RUN ["/usr/local/bin/pip3.5","install","requests"] RUN ["/usr/local/bin/pip3.5","install","gunicorn"] CMD ["gunicorn","--bind=5000","app"] 

И все это доходит до строки «RUN ./configure –prefix = / usr / local», а затем дает мне сообщение «Нет такого файла или каталога». пропущено:

 ... previous steps etc. ... Step 8 : RUN tar zxf Python-3.5.2.tgz ---> Running in 40f96306f38a ---> 95804837192a Removing intermediate container 40f96306f38a Step 9 : WORKDIR "/Python-3.5.2" ---> Running in d8cff5664038 ---> 038c6b892731 Removing intermediate container d8cff5664038 Step 10 : RUN "./configure --prefix=/usr/local" ---> Running in 49b410bed643 /bin/sh: ./configure --prefix=/usr/local: No such file or directory The command '/bin/sh -c "./configure --prefix=/usr/local"' returned a non-zero code: 127 

Когда я запускаю контейнер 038c6b892731 в сеанс bash, команда «./configure –prefix = / usr / local» работает так, как ожидалось:

 $ docker run -it 038c6b892731 bash [root@3aeaea02fede Python-3.5.2]# ./configure --prefix=/usr/local checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for --enable-universalsdk... no checking for --with-universal-archs... no ... etc. ... 

Я попытался сменить команду RUN на «RUN [" ./configure","–prefix=/usr/local "]" с единственным изменением в выходе, являющимся сообщением об ошибке, отформатированным несколько иначе.

Это выполняется в:

 $ docker -v Docker version 1.12.2, build bb80604 

Я запускаю ваш файл Docker с той же ошибкой.

Но когда я изменил это:

  RUN "./configure --prefix=/usr/local" 

к этому:

  RUN ./configure --prefix=/usr/local 

У меня все еще была проблема с RUN "make" поэтому вам также нужно изменить Dockerfile следующим образом:

 RUN ["tar","zxf","Python-3.5.2.tgz"] WORKDIR "/Python-3.5.2" RUN ./configure --prefix=/usr/local # changed RUN make # changed RUN make altinstall RUN ["rm","-rf","Python-3.5.2"] 

И это работает для меня. Или вы можете использовать способ с RUN ["xy","ab"] как @Rao ответил.

В Dockerfile есть тривиальные изменения, как показано ниже:

Итак, пожалуйста, измените ниже строки
Из:

 ADD http://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz Python-3.5.2.tgz RUN ["tar","zxf","Python-3.5.2.tgz"] WORKDIR "/Python-3.5.2" RUN "./configure --prefix=/usr/local" 

Для того, чтобы:

 ADD http://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz /Python-3.5.2.tgz RUN ["tar","zxf","/Python-3.5.2.tgz"] WORKDIR "/Python-3.5.2" RUN ["./configure", "--prefix=/usr/local"]