blob: 5f12dc837f4e57865e272babdf4c67cdce3fa01b [file] [log] [blame]
# 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.
FROM arm64v8/ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
# Install dependencies.
RUN apt-get update && \
apt-get install -qy \
autoconf \
build-essential \
curl \
git \
iputils-ping \
libapr1-dev \
libcurl4-nss-dev \
libev-dev \
libevent-dev \
libncurses5 \
libsasl2-dev \
libssl-dev \
libsvn-dev \
libtool \
maven \
openjdk-8-jdk \
python2-dev \
python-six \
sed \
zlib1g-dev \
software-properties-common && \
apt-get clean && \
rm -rf /var/lib/apt/lists
# Install Python 3.6.
ARG PYTHON_TARGET_VERSION=3.6.15
# Download and install Python from source
RUN curl https://www.python.org/ftp/python/$PYTHON_TARGET_VERSION/Python-$PYTHON_TARGET_VERSION.tgz -o /tmp/Python-$PYTHON_TARGET_VERSION.tgz && \
cd /tmp && \
tar xzf Python-$PYTHON_TARGET_VERSION.tgz && \
cd Python-$PYTHON_TARGET_VERSION && \
./configure --enable-optimizations && \
make altinstall && \
rm -rf /tmp/Python-$PYTHON_TARGET_VERSION.tgz /tmp/Python-$PYTHON_TARGET_VERSION
# Use update-alternatives to set python3.6 as python3.
RUN update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.6 1
# Install newer Clang.
RUN curl -L http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-aarch64-linux-gnu.tar.xz -o /tmp/clang.tar.xz && \
tar -xf /tmp/clang.tar.xz && \
rm /tmp/clang.tar.xz && \
cp -R clang+llvm-8.0.0-aarch64-linux-gnu/* /usr/ && \
rm -rf clang+llvm-8.0.0-aarch64-linux-gnu && \
clang++ --version
# Install newer CMake.
RUN curl https://cmake.org/files/v3.15/cmake-3.15.0.tar.gz -o /tmp/cmake-3.15.0.tar.gz && \
tar xvzf /tmp/cmake-3.15.0.tar.gz -C /tmp && \
cd /tmp/cmake-3.15.0 && \
export CC=/usr/bin/clang && \
export CXX=/usr/bin/clang++ && \
./configure && \
make && \
make install && \
cmake --version
# Add an unprivileged user.
RUN adduser --disabled-password --gecos '' mesos
USER mesos
COPY ["entrypoint.sh", "entrypoint.sh"]
CMD ["./entrypoint.sh"]