blob: 058316759f42daf7694d39a4d2a79182d2474a37 [file]
#
# 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 ubuntu:20.04
USER root
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true
ENV LC_ALL=C
RUN export LC_ALL=C \
&& apt-get update \
&& apt-get install --no-install-recommends -y \
ca-certificates \
build-essential \
curl \
wget \
git \
llvm \
clang \
libssl-dev \
cmake \
cpio \
libxml2-dev \
patch \
bzip2 \
libbz2-dev \
zlib1g-dev \
default-jdk \
unzip \
gcc-10 \
g++-10 \
cpp-10
ENV CC="gcc-10"
ENV CXX="g++-10"
# protoc — picks the host arch automatically by reading $(uname -m)
RUN PB_REL="https://github.com/protocolbuffers/protobuf/releases" \
&& ARCH="$(uname -m)" \
&& case "$ARCH" in \
x86_64) PB_ARCH="x86_64" ;; \
aarch64) PB_ARCH="aarch_64" ;; \
*) echo "Unsupported arch: $ARCH" >&2; exit 1 ;; \
esac \
&& curl -LO "$PB_REL/download/v30.2/protoc-30.2-linux-${PB_ARCH}.zip" \
&& unzip "protoc-30.2-linux-${PB_ARCH}.zip" -d /root/.local \
&& rm "protoc-30.2-linux-${PB_ARCH}.zip"
ENV PATH="$PATH:/root/.local/bin"
# Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
COPY build-native-libs.sh /opt/datafusion-java-rm/build-native-libs.sh
WORKDIR /opt/datafusion-java-rm
ENTRYPOINT ["/opt/datafusion-java-rm/build-native-libs.sh"]