Sign inSign up

cloudera/impala-dev

By cloudera

•Updated over 9 years ago

Impala development environment

23

10K+

Dockerfile
FROM ubuntu:14.04

COPY container_root/bin/docker-boot /bin/
COPY container_root/bin/docker-boot-daemon /bin/
COPY container_root/bin/docker-ip /bin/
COPY container_root/tmp /tmp/

# Set bash as the default shell. Some impala scripts require bash and by default
# RUN uses /bis/sh which is dash.
RUN unlink /bin/sh && ln -s /bin/bash /bin/sh

ENV HOSTNAME localhost

RUN apt-get update

RUN apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:git-core/ppa
RUN add-apt-repository -y ppa:webupd8team/java
RUN add-apt-repository -y ppa:bitcoin/bitcoin
RUN echo  "debconf shared/accepted-oracle-license-v1-1 select true" | \
    debconf-set-selections
RUN echo "debconf shared/accepted-oracle-license-v1-1 seen true" | \
    debconf-set-selections
RUN apt-get update

RUN apt-get install -y \
    ant \
    apt-file \
    automake \
    bash-completion \
    bison \
    cmake \
    curl \
    distcc \
    emacs \
    flex \
    g++ \
    gdb \
    git \
    groff \
    inetutils-ping \
    ipython \
    libbz2-dev \
    libdb4.8-dev \
    libevent1-dev \
    libldap2-dev \
    liblzo2-dev \
    libsasl2-dev \
    libssl-dev \
    libtool \
    lsb-release \
    lsof \
    lzop \
    make \
    man \
    maven \
    net-tools \
    openssh-client \
    openssh-server \
    oracle-jdk7-installer \
    pkg-config \
    postgresql \
    postgresql-server-dev-9.3 \
    psmisc \
    pypy \
    python-dev \
    python-pip \
    python-setuptools \
    subversion \
    sudo \
    tmux \
    vim \
    wget \
    zlib1g-dev \
    zsh
# Workaround https://github.com/docker/docker/issues/783
RUN mkdir /etc/ssl/private-copy \
    && mv /etc/ssl/private/* /etc/ssl/private-copy/ \
    && rm -rf /etc/ssl/private \
    && mv /etc/ssl/private-copy /etc/ssl/private \
    && chmod -R 0700 /etc/ssl/private \
    && chown -R postgres /etc/ssl/private

RUN update-alternatives --set java /usr/lib/jvm/java-7-oracle/jre/bin/java
ENV JAVA_HOME /usr/lib/jvm/java-7-oracle

RUN easy_install -U setuptools
RUN pip install git-review

RUN locale-gen en_US en_US.UTF-8
RUN dpkg-reconfigure locales

RUN echo 'America/Los_Angeles' > /etc/timezone
RUN dpkg-reconfigure --frontend noninteractive tzdata

RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
ENV SUDO_GROUP sudo

RUN sed -i "s:#listen_addresses = 'localhost':listen_addresses = '*':g" \
    /etc/postgresql/*/main/postgresql.conf
RUN sed -i s:peer:trust:g /etc/postgresql/*/main/pg_hba.conf
RUN sed -i s:md5:trust:g /etc/postgresql/*/main/pg_hba.conf
RUN sed -i s:127.0.0.1/32:0.0.0.0/0:g /etc/postgresql/*/main/pg_hba.conf
RUN service postgresql start \
    && sleep 5 \
    && sudo -u postgres psql -c " \
        CREATE ROLE hiveuser LOGIN PASSWORD 'password'; \
        ALTER ROLE hiveuser WITH CREATEDB;"

RUN echo root:cloudera | chpasswd

ENV BASH_COMPLETION /etc/bash_completion

CMD /bin/docker-boot-daemon

RUN sed -i s:###JAVA_HOME###:$JAVA_HOME: /tmp/home/dev/.{bash,zsh}rc
RUN sed -i s:###BASH_COMPLETION###:$BASH_COMPLETION: /tmp/home/dev/.bashrc
RUN /tmp/setup-users setup_user dev

RUN mkdir -p /var/lib/hadoop-hdfs
RUN chown dev /var/lib/hadoop-hdfs

ENV IMPALA_TOOLACHAIN /opt/Impala-Toolchain
RUN mkdir -p $IMPALA_TOOLACHAIN
RUN chmod 777 $IMPALA_TOOLACHAIN


USER dev
WORKDIR /home/dev
RUN /tmp/git-clone-retry https://github.com/cloudera/Impala.git
RUN /tmp/git-clone-retry https://github.com/cloudera/impala-lzo.git Impala-lzo
RUN /tmp/git-clone-retry https://github.com/cloudera/hadoop-lzo.git
RUN for DIR in Impala Impala-lzo; do \
      curl -o $DIR/.git/hooks/commit-msg \
          http://gerrit.cloudera.org:8080/tools/hooks/commit-msg \
      && chmod +x $DIR/.git/hooks/commit-msg; \
    done
ENV IMPALA_HOME /home/dev/Impala
ENV USER dev