Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 26 additions & 38 deletions build-env/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
# Dockerfile for installing the necessary dependencies for building Hadoop.
# See BUILDING.txt.

FROM ubuntu:focal
ARG OS_IDENTIFIER=ubuntu-2004
FROM ubuntu:bionic
ARG OS_IDENTIFIER=ubuntu-1804

WORKDIR /root

Expand All @@ -39,8 +39,6 @@ RUN apt-get -q update \
&& apt-get -q install -y --no-install-recommends \
ant \
apt-utils \
autoconf \
automake \
bats \
build-essential \
bzip2 \
Expand All @@ -65,7 +63,7 @@ RUN apt-get -q update \
libsnappy-dev \
libssl-dev \
libtool \
libzstd-dev \
libzstd1-dev \
locales \
make \
openjdk-8-jdk \
Expand All @@ -83,7 +81,6 @@ RUN apt-get -q update \
sudo \
unzip \
valgrind \
vim \
wget \
zlib1g-dev \
&& apt-get clean \
Expand All @@ -94,13 +91,13 @@ ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
ENV PYTHONIOENCODING=utf-8

# Install Maven 3.9.9
RUN mkdir /opt/maven \
&& curl -L https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip -o apache-maven-3.9.9-bin.zip \
&& unzip apache-maven-3.9.9-bin.zip \
&& mv apache-maven-3.9.9 /opt/maven \
&& rm apache-maven-3.9.9-bin.zip
RUN mkdir /opt/maven \
&& curl -L https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.zip -o apache-maven-3.9.11-bin.zip \
&& unzip apache-maven-3.9.11-bin.zip \
&& mv apache-maven-3.9.11 /opt/maven \
&& rm apache-maven-3.9.11-bin.zip

ENV MAVEN_HOME=/opt/maven/apache-maven-3.9.9
ENV MAVEN_HOME=/opt/maven/apache-maven-3.9.11
ENV PATH=$PATH:$MAVEN_HOME/bin

######
Expand All @@ -124,18 +121,16 @@ RUN wget https://cdn.posit.co/r/${OS_IDENTIFIER}/pkgs/r-${R_VERSION}_1_amd64.deb
# JAVA_HOME must be set in Maven >= 3.5.0 (MNG-6003)
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64


#######
# Install Boost 1.86
# Install Boost 1.72 (1.65 ships with Bionic)
#######

# hadolint ignore=DL3003
RUN mkdir -p /opt/boost-library \
&& curl -L https://sourceforge.net/projects/boost/files/boost/1.86.0/boost_1_86_0.tar.bz2/download >boost_1_86_0.tar.bz2 \
&& mv boost_1_86_0.tar.bz2 /opt/boost-library \
RUN mkdir -p /opt/boost-library \
&& curl -L https://sourceforge.net/projects/boost/files/boost/1.72.0/boost_1_72_0.tar.bz2/download > boost_1_72_0.tar.bz2 \
&& mv boost_1_72_0.tar.bz2 /opt/boost-library \
&& cd /opt/boost-library \
&& tar --bzip2 -xf boost_1_86_0.tar.bz2 \
&& cd /opt/boost-library/boost_1_86_0 \
&& tar --bzip2 -xf boost_1_72_0.tar.bz2 \
&& cd /opt/boost-library/boost_1_72_0 \
&& ./bootstrap.sh --prefix=/usr/ \
&& ./b2 --without-python install \
&& cd /root \
Expand All @@ -146,22 +141,21 @@ RUN mkdir -p /opt/boost-library \
#######
RUN mkdir -p /opt/spotbugs \
&& curl -L -s -S https://github.com/spotbugs/spotbugs/releases/download/4.2.2/spotbugs-4.2.2.tgz \
-o /opt/spotbugs.tgz \
-o /opt/spotbugs.tgz \
&& tar xzf /opt/spotbugs.tgz --strip-components 1 -C /opt/spotbugs \
&& chmod +x /opt/spotbugs/bin/*
ENV SPOTBUGS_HOME /opt/spotbugs

######
# Install Google Protobuf 3.21.12
# Install Google Protobuf 3.7.1 (3.0.0 ships with Bionic)
######
# hadolint ignore=DL3003
RUN mkdir -p /opt/protobuf-src \
&& curl -L -s -S \
https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz \
-o /opt/protobuf.tar.gz \
https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz \
-o /opt/protobuf.tar.gz \
&& tar xzf /opt/protobuf.tar.gz --strip-components 1 -C /opt/protobuf-src \
&& cd /opt/protobuf-src/ \
&& ./autogen.sh \
&& cd /opt/protobuf-src \
&& ./configure --prefix=/opt/protobuf \
&& make "-j$(nproc)" \
&& make install \
Expand All @@ -170,28 +164,22 @@ RUN mkdir -p /opt/protobuf-src \
ENV PROTOBUF_HOME /opt/protobuf
ENV PATH "${PATH}:/opt/protobuf/bin"


# Use venv because of new python system protection
ENV VENV_PATH=/opt/venv
RUN python3 -m venv $VENV_PATH
ENV PATH "$VENV_PATH/bin:$PATH"

####
# Upgrade pip3
####
RUN python3 -m pip install --upgrade pip setuptools wheel
RUN python3 -m pip install --upgrade pip

####
# Install pandas and pyarrow for Spark 3
# venv-pack for jupyterhub venv
####
RUN $VENV_PATH/bin/pip3 install numpy==1.24.4 \
pandas==2.0.3 \
pyarrow==14.0.2 \
RUN pip3 install numpy==1.19.5 \
pandas==1.0.5 \
pyarrow==4.0.1 \
venv-pack==0.2.0

# Install pylint and python-dateutil
RUN $VENV_PATH/bin/pip3 install pylint==2.6.0 python-dateutil==2.8.2
RUN pip3 install pylint==2.6.0 python-dateutil==2.8.1

###
## Install Yarn 1.12.1 for web UI framework
Expand Down Expand Up @@ -257,7 +245,7 @@ RUN mkdir -p /opt/gradle \
&& curl -L https://services.gradle.org/distributions/gradle-8.1.1-bin.zip -o gradle-8.1.1-bin.zip \
&& unzip gradle-8.1.1-bin.zip \
&& mv gradle-8.1.1 /opt/gradle \
&& rm gradle-8.1.1-bin.zip
&& rm gradle-8.1.1-bin.zip

ENV GRADLE_HOME=/opt/gradle/gradle-8.1.1
ENV PATH=$PATH:$GRADLE_HOME/bin
Expand Down