浏览代码

HADOOP-12562. Make hadoop dockerfile usable by Yetus. Contributed by Allen Wittenauer.

Haohui Mai 9 年之前
父节点
当前提交
0ca8df716a
共有 2 个文件被更改,包括 59 次插入33 次删除
  1. 56 33
      dev-support/docker/Dockerfile
  2. 3 0
      hadoop-common-project/hadoop-common/CHANGES.txt

+ 56 - 33
dev-support/docker/Dockerfile

@@ -18,26 +18,19 @@
 # Dockerfile for installing the necessary dependencies for building Hadoop.
 # See BUILDING.txt.
 
-# FROM dockerfile/java:openjdk-7-jdk
-# FROM dockerfile/java:oracle-java7
+
 FROM ubuntu:trusty
 
 WORKDIR /root
 
-RUN apt-get update && \
-    apt-get install -y software-properties-common && \
-    add-apt-repository -y ppa:webupd8team/java && \
-    apt-get update
-
-# Auto-accept the Oracle JDK license
-RUN echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
-
-RUN apt-get install -y oracle-java7-installer
-
-# Install dependencies from packages
+######
+# Install common dependencies from packages
+######
 RUN apt-get update && apt-get install --no-install-recommends -y \
     git curl ant make maven \
-    cmake gcc g++ protobuf-compiler \
+    cmake gcc g++ \
+    protobuf-compiler libprotoc-dev \
+    protobuf-c-compiler libprotobuf-dev \
     build-essential libtool \
     zlib1g-dev pkg-config libssl-dev \
     snappy libsnappy-dev \
@@ -45,40 +38,70 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
     libjansson-dev \
     fuse libfuse-dev \
     libcurl4-openssl-dev \
-    python python2.7
+    python python2.7 pylint \
+    openjdk-7-jdk doxygen
 
-# Install Forrest
-RUN mkdir -p /usr/local/apache-forrest ; \
-    curl -O http://archive.apache.org/dist/forrest/0.8/apache-forrest-0.8.tar.gz ; \
-    tar xzf *forrest* --strip-components 1 -C /usr/local/apache-forrest ; \
-    echo 'forrest.home=/usr/local/apache-forrest' > build.properties
+# Fixing the Apache commons / Maven dependency problem under Ubuntu:
+# See http://wiki.apache.org/commons/VfsProblems
+RUN cd /usr/share/maven/lib && ln -s ../../java/commons-lang.jar .
+
+#######
+# Oracle Java
+#######
 
+RUN apt-get install -y software-properties-common
+RUN add-apt-repository -y ppa:webupd8team/java
+RUN apt-get update
+
+# Auto-accept the Oracle JDK license
+RUN echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
+RUN apt-get install -y oracle-java7-installer
+
+# Auto-accept the Oracle JDK license
+RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
+RUN apt-get install -y oracle-java8-installer
+
+######
 # Install findbugs
+######
 RUN mkdir -p /opt/findbugs && \
-    wget http://sourceforge.net/projects/findbugs/files/findbugs/3.0.1/findbugs-noUpdateChecks-3.0.1.tar.gz/download \
-         -O /opt/findbugs.tar.gz && \
+    curl -L https://sourceforge.net/projects/findbugs/files/findbugs/3.0.1/findbugs-noUpdateChecks-3.0.1.tar.gz/download \
+         -o /opt/findbugs.tar.gz && \
     tar xzf /opt/findbugs.tar.gz --strip-components 1 -C /opt/findbugs
 ENV FINDBUGS_HOME /opt/findbugs
 
+####
 # Install shellcheck
+####
 RUN apt-get install -y cabal-install
 RUN cabal update && cabal install shellcheck --global
 
-#####
-# bats
-#####
-
-RUN add-apt-repository ppa:duggan/bats --yes
-RUN apt-get update -qq
-RUN apt-get install -qq bats
-
-# Fixing the Apache commons / Maven dependency problem under Ubuntu:
-# See http://wiki.apache.org/commons/VfsProblems
-RUN cd /usr/share/maven/lib && ln -s ../../java/commons-lang.jar .
+####
+# Install bats
+####
+RUN add-apt-repository -y ppa:duggan/bats
+RUN apt-get update
+RUN apt-get install -y bats
 
+###
 # Avoid out of memory errors in builds
+###
 ENV MAVEN_OPTS -Xms256m -Xmx512m
 
+###
+# Everything past this point is either not needed for testing or breaks Yetus.
+# So tell Yetus not to read the rest of the file:
+# YETUS CUT HERE
+###
+
+####
+# Install Forrest (for Apache Hadoop website)
+###
+RUN mkdir -p /usr/local/apache-forrest ; \
+    curl -O http://archive.apache.org/dist/forrest/0.8/apache-forrest-0.8.tar.gz ; \
+    tar xzf *forrest* --strip-components 1 -C /usr/local/apache-forrest ; \
+    echo 'forrest.home=/usr/local/apache-forrest' > build.properties
+
 # Add a welcome message and environment checks.
 ADD hadoop_env_checks.sh /root/hadoop_env_checks.sh
 RUN chmod 755 /root/hadoop_env_checks.sh

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -953,6 +953,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-11684. S3a to use thread pool that blocks clients. (Thomas Demoor
     and Aaron Fabbri via lei)
 
+    HADOOP-12562. Make hadoop dockerfile usable by Yetus.
+    (Allen Wittenauer via wheat9)
+
   OPTIMIZATIONS
 
     HADOOP-11785. Reduce the number of listStatus operation in distcp