如何通过Dockerfile编辑文件
问题描述:
我想创建一个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
仍然没有成功
答
尝试用回声Dockerfile多语法:
RUN echo $'this is\n\
a multiline\n\
string\n'\
>> ~/.bashrc
没有工作,码头不抱怨,但我然后做一个码头运行debian猫〜/ .bashrc和缺少新行 –