From 0ca8df716a1bb8e7f894914fb0d740a1d14df8e3 Mon Sep 17 00:00:00 2001 From: Haohui Mai Date: Thu, 12 Nov 2015 10:17:41 -0800 Subject: [PATCH] HADOOP-12562. Make hadoop dockerfile usable by Yetus. Contributed by Allen Wittenauer. --- dev-support/docker/Dockerfile | 103 +++++++++++------- .../hadoop-common/CHANGES.txt | 3 + 2 files changed, 66 insertions(+), 40 deletions(-) diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile index bc09ef27cfa..e80df296a9a 100644 --- a/dev-support/docker/Dockerfile +++ b/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 - -# 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 - -# 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 && \ - 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 + python python2.7 pylint \ + openjdk-7-jdk doxygen # 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 && \ + 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 + +#### +# 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 diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 920fd03a381..8b837945b2b 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/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