2016-04-25 55 views
1

我想创建一个Dockerfile来设置我的hadoop环境。 在其中一个步骤中,我需要添加一些行到我的bashrc文件中。这是我在做什么:如何通过Dockerfile编辑文件

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

没有工作,码头不抱怨,但我然后做一个码头运行debian猫〜/ .bashrc和缺少新行 –

相关问题