2016-11-01 8 views
2

Я хотел бы запустить этот бродячую команду кот (запустить отлично!), Чтобы provisionning моего контейнера с Dockerfile:запустить команду CAT Unix в Dockerfile

# Configure Virtualenvwrapper. 
RUN cat <<EOF >> /home/docker/.bashrc 
# Virtualenvwrapper configuration. 
export WORKON_HOME=\$HOME/.virtualenvs 
export PROJECT_HOME=\$HOME/Devel 
source /usr/local/bin/virtualenvwrapper.sh 
EOF 

Но у меня есть это возвращение ошибки, когда я запускаю мой дом изображение докер:

---> 40f9ed8e187d 
Removing intermediate container 85f6c8536520 
Step 69 : RUN cat <<EOF >> /home/docker/.bashrc 
---> Running in dcbb3d441f79 
---> 78acd9c2e5d5 
Removing intermediate container dcbb3d441f79 
Step 70 : EXPORT 
Unknown instruction: EXPORT 

Что такое трюк для запуска командной кошки UNIX в образ с Dockerfile?

ответ

2

Dockerfiles не являются пакетными файлами. Каждая строка/команда изолирована и выполнена.

Просто поместите содержимое в файл и ДОБАВЛЯТЬ/КОПИРОВАТЬ его. Если вам нужно его настроить, SED это. Или, если вы действительно, действительно, действительно хотите CAT в файл - поместите его в настоящий пакетный файл, затем ADD/COPY it, а затем запустите его.

Кроме того, меньше линий = меньше слоев. 70 шагов? Yowzers.

+0

Кроме того, вам нужно будет запустить с помощью интерактивного флага для загрузки .bashrc. Сделайте несколько правильных сценариев выполнения, чтобы убедиться, что значения параметров ENV vars установлены правильно - vs- «магия» .bashrc в контейнере. – user2105103

 Смежные вопросы

  • Нет связанных вопросов^_^