1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9#   http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied.  See the License for the
15# specific language governing permissions and limitations
16# under the License.
17
18ARG arch=amd64
19FROM ${arch}/debian:10
20ARG arch
21
22ENV DEBIAN_FRONTEND noninteractive
23
24RUN \
25  echo "deb http://deb.debian.org/debian buster-backports main" > \
26    /etc/apt/sources.list.d/backports.list
27
28ARG llvm
29RUN apt-get update -y -q && \
30    apt-get install -y -q --no-install-recommends \
31        apt-transport-https \
32        ca-certificates \
33        gnupg \
34        wget && \
35    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
36    echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-${llvm} main" > \
37        /etc/apt/sources.list.d/llvm.list && \
38    apt-get update -y -q && \
39    apt-get install -y -q --no-install-recommends \
40        autoconf \
41        ccache \
42        clang-${llvm} \
43        cmake \
44        g++ \
45        gcc \
46        gdb \
47        git \
48        libbenchmark-dev \
49        libboost-all-dev \
50        libbrotli-dev \
51        libbz2-dev \
52        libc-ares-dev \
53        libcurl4-openssl-dev \
54        libgflags-dev \
55        libgmock-dev \
56        libgoogle-glog-dev \
57        liblz4-dev \
58        libre2-dev \
59        libsnappy-dev \
60        libssl-dev \
61        libthrift-dev \
62        libutf8proc-dev \
63        llvm-${llvm}-dev \
64        make \
65        ninja-build \
66        pkg-config \
67        protobuf-compiler \
68        python3-pip \
69        rapidjson-dev \
70        tzdata \
71        zlib1g-dev && \
72    apt-get clean && \
73    rm -rf /var/lib/apt/lists/*
74
75COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
76RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
77COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/
78RUN /arrow/ci/scripts/install_gcs_testbench.sh ${arch} default
79
80ENV ARROW_BUILD_TESTS=ON \
81    ARROW_DATASET=ON \
82    ARROW_DEPENDENCY_SOURCE=SYSTEM \
83    ARROW_FLIGHT=ON \
84    ARROW_GANDIVA=ON \
85    ARROW_HOME=/usr/local \
86    ARROW_ORC=ON \
87    ARROW_PARQUET=ON \
88    ARROW_PLASMA=ON \
89    ARROW_S3=ON \
90    ARROW_USE_CCACHE=ON \
91    ARROW_WITH_BROTLI=ON \
92    ARROW_WITH_BZ2=ON \
93    ARROW_WITH_LZ4=ON \
94    ARROW_WITH_SNAPPY=ON \
95    ARROW_WITH_ZLIB=ON \
96    ARROW_WITH_ZSTD=ON \
97    AWSSDK_SOURCE=BUNDLED \
98    cares_SOURCE=BUNDLED \
99    CC=gcc \
100    CXX=g++ \
101    gRPC_SOURCE=BUNDLED \
102    GTest_SOURCE=BUNDLED \
103    ORC_SOURCE=BUNDLED \
104    PATH=/usr/lib/ccache/:$PATH \
105    Protobuf_SOURCE=BUNDLED \
106    zstd_SOURCE=BUNDLED
107