| # |
| # 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"] |