2016-04-25 6 views
1

Я пытаюсь создать файл Docker для настройки моей среды hadoop. На одном из шагов мне нужно добавить некоторые строки в файл bashrc. Это то, что я делаю:как отредактировать файл через файл Docker

RUN wget http://apache.mirror.digitalpacific.com.au/hadoop/common/current/hadoop-2.7.2.tar.gz 
RUN tar -zxvf hadoop-2.7.2.tar.gz 
RUN cp -R hadoop-2.7.2 /usr/local/hadoop 
RUN cd /usr/local/hadoop 
RUN cat <<EOF>> ~/.bashrc 
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 
export HADOOP_INSTALL=/usr/local/hadoop 
export PATH=$PATH:$HADOOP_INSTALL/bin 
export PATH=$PATH:$HADOOP_INSTALL/sbin 
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL 
export HADOOP_COMMON_HOME=$HADOOP_INSTALL 
export HADOOP_HDFS_HOME=$HADOOP_INSTALL 
export YARN_HOME=$HADOOP_INSTALL 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native 
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib" 
EOF 
RUN source ~/.bashrc 

Однако я получаю ошибку ниже:

Step 10 : EXPORT 
Unknown instruction: EXPORT 

Любая идея, как я могу изменить свой файл Bashrc?

Примечание:

Я также попытался:

ENV JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64 
ENV HADOOP_INSTALL /usr/local/hadoop 
ENV PATH $PATH:$HADOOP_INSTALL/bin 
ENV PATH $PATH:$HADOOP_INSTALL/sbin 
ENV HADOOP_MAPRED_HOME $HADOOP_INSTALL 
ENV HADOOP_COMMON_HOME $HADOOP_INSTALL 
ENV HADOOP_HDFS_HOME $HADOOP_INSTALL 
ENV YARN_HOME $HADOOP_INSTALL 
ENV HADOOP_COMMON_LIB_NATIVE_DIR $HADOOP_INSTALL/lib/native 
ENV HADOOP_OPTS "-Djava.library.path=$HADOOP_INSTALL/lib" 

и

RUN echo $'export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64' >> ~/.bashrc 
RUN echo $'export HADOOP_INSTALL=/usr/local/hadoop' >> ~/.bashrc 
RUN echo $'export PATH=$PATH:$HADOOP_INSTALL/bin' >> ~/.bashrc 
RUN echo $'export PATH=$PATH:$HADOOP_INSTALL/sbin' >> ~/.bashrc 
RUN echo $'export HADOOP_MAPRED_HOME=$HADOOP_INSTALL' >> ~/.bashrc 
RUN echo $'export HADOOP_COMMON_HOME=$HADOOP_INSTALL' >> ~/.bashrc 
RUN echo $'export HADOOP_HDFS_HOME=$HADOOP_INSTALL' >> ~/.bashrc 
RUN echo $'export YARN_HOME=$HADOOP_INSTALL' >> ~/.bashrc 
RUN echo $'export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native' >> ~/.bashrc 
RUN echo $'export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"' >> ~/.bashrc 

до сих пор нет успеха

ответ

0

Попробуйте Dockerfile многострочный синтаксис с эхо:

RUN echo $'this is\n\ 
a multiline\n\ 
string\n'\ 
>> ~/.bashrc 
+0

не работает, докер не жалуется, но я тогда делаю docker run debian cat ~/.bashrc, и новые строки отсутствуют –

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