From b2c5d84f7e63e0e0f124afe4d169f05d9e052b71 Mon Sep 17 00:00:00 2001 From: zhangduo Date: Mon, 12 Sep 2016 20:07:31 +0800 Subject: [PATCH] HBASE-16373 precommit needs a dockerfile with hbase prereq Signed-off-by: Sean Busbey --- dev-support/docker/Dockerfile | 143 ++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 dev-support/docker/Dockerfile diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile new file mode 100644 index 00000000000..aa33a62427c --- /dev/null +++ b/dev-support/docker/Dockerfile @@ -0,0 +1,143 @@ + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Dockerfile for installing the necessary dependencies for building Hadoop. +# See BUILDING.txt. + + +FROM ubuntu:trusty + +WORKDIR /root + +ENV DEBIAN_FRONTEND noninteractive +ENV DEBCONF_TERSE true + +###### +# Install common dependencies from packages +# +# WARNING: DO NOT PUT JAVA APPS HERE! Otherwise they will install default +# Ubuntu Java. See Java section below! +###### +RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ + build-essential \ + bzip2 \ + cmake \ + curl \ + doxygen \ + fuse \ + g++ \ + gcc \ + git \ + gnupg-agent \ + make \ + libbz2-dev \ + libcurl4-openssl-dev \ + libfuse-dev \ + libprotobuf-dev \ + libprotoc-dev \ + libsnappy-dev \ + libssl-dev \ + libtool \ + pinentry-curses \ + pkg-config \ + protobuf-compiler \ + protobuf-c-compiler \ + python \ + python2.7 \ + python-pip \ + rsync \ + snappy \ + zlib1g-dev + +####### +# Oracle Java +####### + +RUN echo "dot_style = mega" > "/root/.wgetrc" +RUN echo "quiet = on" >> "/root/.wgetrc" + +RUN apt-get -q install --no-install-recommends -y software-properties-common +RUN add-apt-repository -y ppa:webupd8team/java +RUN apt-get -q 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 -q 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 -q install --no-install-recommends -y oracle-java8-installer + +#### +# Apps that require Java +### +RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ + ant \ + maven + +# 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 findbugs +###### +RUN mkdir -p /opt/findbugs && \ + curl -L -s -S \ + 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 -q install -y cabal-install +RUN mkdir /root/.cabal +RUN echo "remote-repo: hackage.fpcomplete.com:http://hackage.fpcomplete.com/" >> /root/.cabal/config +#RUN echo "remote-repo: hackage.haskell.org:http://hackage.haskell.org/" > /root/.cabal/config +RUN echo "remote-repo-cache: /root/.cabal/packages" >> /root/.cabal/config +RUN cabal update +RUN cabal install shellcheck --global + +#### +# Install bats +#### +RUN add-apt-repository -y ppa:duggan/bats +RUN apt-get -q update +RUN apt-get -q install --no-install-recommends -y bats + +#### +# Install pylint +#### +RUN pip install pylint + +#### +# Install dateutil.parser +#### +RUN pip install python-dateutil + +### +# 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 +###