优化Dockerfile 环境变量

This commit is contained in:
yangyu 2018-07-28 23:58:49 +08:00
parent cd03d7a2ac
commit e60fe19528
3 changed files with 65 additions and 46 deletions

View File

@ -7,16 +7,26 @@ ENV HADOOP_VERSION hadoop-2.6.0-cdh5.9.3
RUN yum install -y wget which
RUN cd / && wget http://oss.yangyufans.com/jdk/jdk-7u80-linux-x64.tar.gz \
&& tar -zvxf jdk-7u80-linux-x64.tar.gz -C /usr/local/ \
&& tar -zvxf jdk-7u80-linux-x64.tar.gz -C /usr/local \
&& rm -rf jdk-7u80-linux-x64.tar.gz
ENV JAVA_HOME "/usr/local/jdk1.7.0_80"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV JDK_VERSION "jdk1.7.0_80"
ENV JAVA_HOME "/usr/local/$JDK_VERSION"
RUN cd / && wget http://archive.cloudera.com/cdh5/cdh/5/$HADOOP_VERSION.tar.gz \
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local\
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local \
&& rm -rf $HADOOP_VERSION.tar.gz
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
RUN echo "export JAVA_HOME=/usr/local/$JDK_VERSION" >> /etc/profile && \
echo "export HADOOP_HOME=$HADOOP_HOME" >> /etc/profile && \
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile && \
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile && \
source /etc/profile
RUN mkdir /conf /logs /data
RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
@ -26,19 +36,15 @@ RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
RUN ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa && \
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV YARN_LOG_DIR /logs
ENV YARN_LOG_DIR "/logs"
RUN sed -i 's/export JAVA_HOME=${JAVA_HOME}/export JAVA_HOME=\/usr\/local\/jdk1.7.0_80/g' /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
sed -e "1 i\export YARN_LOG_DIR=\/logs" $HADOOP_HOME/etc/hadoop/yarn-env.sh > $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak && \
\mv $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak $HADOOP_HOME/etc/hadoop/yarn-env.sh
COPY conf/* /usr/local/$HADOOP_VERSION/etc/hadoop/
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
COPY conf/* $HADOOP_HOME/etc/hadoop/
COPY start.sh /

View File

@ -7,16 +7,26 @@ ENV HADOOP_VERSION hadoop-3.0.3
RUN yum install -y wget which
RUN cd / && wget http://yy-bak.oss-cn-qingdao.aliyuncs.com/jdk/jdk-8u172-linux-x64.tar.gz \
&& tar -zvxf jdk-8u172-linux-x64.tar.gz -C /usr/local/ \
&& tar -zvxf jdk-8u172-linux-x64.tar.gz -C /usr/local \
&& rm -rf jdk-8u172-linux-x64.tar.gz
ENV JAVA_HOME "/usr/local/jdk1.8.0_172"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV JDK_VERSION "jdk1.8.0_172"
ENV JAVA_HOME "/usr/local/$JDK_VERSION"
RUN cd / && wget http://mirrors.hust.edu.cn/apache/hadoop/common/$HADOOP_VERSION/$HADOOP_VERSION.tar.gz \
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local\
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local \
&& rm -rf $HADOOP_VERSION.tar.gz
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
RUN echo "export JAVA_HOME=/usr/local/$JDK_VERSION" >> /etc/profile && \
echo "export HADOOP_HOME=$HADOOP_HOME" >> /etc/profile && \
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile && \
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile && \
source /etc/profile
RUN mkdir /conf /logs /data
RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
@ -26,24 +36,20 @@ RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
RUN ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa && \
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV YARN_LOG_DIR /logs
RUN sed -i 's/# export JAVA_HOME=/export JAVA_HOME=\/usr\/local\/jdk1.8.0_172/g' /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_NAMENODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_DATANODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export YARN_RESOURCEMANAGER_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export YARN_NODEMANAGER_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
RUN sed -i 's/# export JAVA_HOME=/export JAVA_HOME=\/usr\/local\/jdk1.8.0_172/g' $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_NAMENODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_DATANODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export YARN_RESOURCEMANAGER_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export YARN_NODEMANAGER_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
sed -e "1 i\export YARN_LOG_DIR=\/logs" $HADOOP_HOME/etc/hadoop/yarn-env.sh > $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak && \
\mv $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak $HADOOP_HOME/etc/hadoop/yarn-env.sh
COPY conf/* /usr/local/$HADOOP_VERSION/etc/hadoop/
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
COPY conf/* $HADOOP_HOME/etc/hadoop/
COPY start.sh /

View File

@ -7,16 +7,26 @@ ENV HADOOP_VERSION hadoop-3.1.0
RUN yum install -y wget which
RUN cd / && wget http://yy-bak.oss-cn-qingdao.aliyuncs.com/jdk/jdk-8u172-linux-x64.tar.gz \
&& tar -zvxf jdk-8u172-linux-x64.tar.gz -C /usr/local/ \
&& tar -zvxf jdk-8u172-linux-x64.tar.gz -C /usr/local \
&& rm -rf jdk-8u172-linux-x64.tar.gz
ENV JAVA_HOME "/usr/local/jdk1.8.0_172"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV JDK_VERSION "jdk1.8.0_172"
ENV JAVA_HOME "/usr/local/$JDK_VERSION"
RUN cd / && wget http://mirrors.hust.edu.cn/apache/hadoop/common/$HADOOP_VERSION/$HADOOP_VERSION.tar.gz \
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local\
&& tar -zxvf $HADOOP_VERSION.tar.gz -C /usr/local \
&& rm -rf $HADOOP_VERSION.tar.gz
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV PATH "$PATH:$JAVA_HOME/bin"
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
RUN echo "export JAVA_HOME=/usr/local/$JDK_VERSION" >> /etc/profile && \
echo "export HADOOP_HOME=$HADOOP_HOME" >> /etc/profile && \
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile && \
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile && \
source /etc/profile
RUN mkdir /conf /logs /data
RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
@ -26,24 +36,21 @@ RUN echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock && \
RUN ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa && \
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ENV HADOOP_HOME "/usr/local/$HADOOP_VERSION"
ENV YARN_LOG_DIR /logs
ENV YARN_LOG_DIR "/logs"
RUN sed -i 's/# export JAVA_HOME=/export JAVA_HOME=\/usr\/local\/jdk1.8.0_172/g' /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_NAMENODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_DATANODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export YARN_RESOURCEMANAGER_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
echo "export YARN_NODEMANAGER_USER=root" >> /usr/local/$HADOOP_VERSION/etc/hadoop/hadoop-env.sh && \
RUN sed -i 's/# export JAVA_HOME=/export JAVA_HOME=\/usr\/local\/jdk1.8.0_172/g' $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_LOG_DIR=/logs" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HADOOP_PREFIX=$HADOOP_HOME" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_NAMENODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_DATANODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export YARN_RESOURCEMANAGER_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
echo "export YARN_NODEMANAGER_USER=root" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
sed -e "1 i\export YARN_LOG_DIR=\/logs" $HADOOP_HOME/etc/hadoop/yarn-env.sh > $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak && \
\mv $HADOOP_HOME/etc/hadoop/yarn-env.sh.bak $HADOOP_HOME/etc/hadoop/yarn-env.sh
COPY conf/* /usr/local/$HADOOP_VERSION/etc/hadoop/
ENV PATH "$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
COPY conf/* $HADOOP_HOME/etc/hadoop/
COPY start.sh /