]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/ci/docker/ubuntu-20.10-cpp.dockerfile
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / ci / docker / ubuntu-20.10-cpp.dockerfile
CommitLineData
1d09f67e
TL
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 base=amd64/ubuntu:20.10
19FROM ${base}
20ARG arch
21
22SHELL ["/bin/bash", "-o", "pipefail", "-c"]
23
24RUN echo "debconf debconf/frontend select Noninteractive" | \
25 debconf-set-selections
26
27# Installs LLVM toolchain, for Gandiva and testing other compilers
28#
29# Note that this is installed before the base packages to improve iteration
30# while debugging package list with docker build.
31ARG clang_tools
32ARG llvm
33RUN if [ "${llvm}" -gt "10" ]; then \
34 apt-get update -y -q && \
35 apt-get install -y -q --no-install-recommends \
36 apt-transport-https \
37 ca-certificates \
38 gnupg \
39 wget && \
40 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
41 echo "deb https://apt.llvm.org/groovy/ llvm-toolchain-groovy-${llvm} main" > \
42 /etc/apt/sources.list.d/llvm.list && \
43 if [ "${clang_tools}" != "${llvm}" -a "${clang_tools}" -gt 10 ]; then \
44 echo "deb https://apt.llvm.org/groovy/ llvm-toolchain-groovy-${clang_tools} main" > \
45 /etc/apt/sources.list.d/clang-tools.list; \
46 fi \
47 fi && \
48 apt-get update -y -q && \
49 apt-get install -y -q --no-install-recommends \
50 clang-${clang_tools} \
51 clang-${llvm} \
52 clang-format-${clang_tools} \
53 clang-tidy-${clang_tools} \
54 llvm-${llvm}-dev && \
55 apt-get clean && \
56 rm -rf /var/lib/apt/lists*
57
58# Installs C++ toolchain and dependencies
59RUN apt-get update -y -q && \
60 apt-get install -y -q --no-install-recommends \
61 autoconf \
62 ca-certificates \
63 ccache \
64 cmake \
65 g++ \
66 gcc \
67 gdb \
68 git \
69 libbenchmark-dev \
70 libboost-filesystem-dev \
71 libboost-system-dev \
72 libbrotli-dev \
73 libbz2-dev \
74 libc-ares-dev \
75 libcurl4-openssl-dev \
76 libgflags-dev \
77 libgoogle-glog-dev \
78 libgrpc++-dev \
79 liblz4-dev \
80 libprotobuf-dev \
81 libprotoc-dev \
82 libre2-dev \
83 libsnappy-dev \
84 libssl-dev \
85 libthrift-dev \
86 libutf8proc-dev \
87 libzstd-dev \
88 make \
89 ninja-build \
90 pkg-config \
91 protobuf-compiler \
92 protobuf-compiler-grpc \
93 python3-pip \
94 rapidjson-dev \
95 tzdata \
96 wget && \
97 apt-get clean && \
98 rm -rf /var/lib/apt/lists*
99
100COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
101RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
102COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/
103RUN /arrow/ci/scripts/install_gcs_testbench.sh ${arch} default
104
105# Prioritize system packages and local installation
106# The following dependencies will be downloaded due to missing/invalid packages
107# provided by the distribution:
108# - libc-ares-dev does not install CMake config files
109# - flatbuffer is not packaged
110# - libgtest-dev only provide sources
111# - libprotobuf-dev only provide sources
112ENV ARROW_BUILD_TESTS=ON \
113 ARROW_DEPENDENCY_SOURCE=SYSTEM \
114 ARROW_DATASET=ON \
115 ARROW_FLIGHT=OFF \
116 ARROW_GANDIVA=ON \
117 ARROW_HDFS=ON \
118 ARROW_HOME=/usr/local \
119 ARROW_INSTALL_NAME_RPATH=OFF \
120 ARROW_NO_DEPRECATED_API=ON \
121 ARROW_ORC=ON \
122 ARROW_PARQUET=ON \
123 ARROW_PLASMA=ON \
124 ARROW_S3=ON \
125 ARROW_USE_ASAN=OFF \
126 ARROW_USE_CCACHE=ON \
127 ARROW_USE_UBSAN=OFF \
128 ARROW_WITH_BROTLI=ON \
129 ARROW_WITH_BZ2=ON \
130 ARROW_WITH_LZ4=ON \
131 ARROW_WITH_SNAPPY=ON \
132 ARROW_WITH_ZLIB=ON \
133 ARROW_WITH_ZSTD=ON \
134 AWSSDK_SOURCE=BUNDLED \
135 GTest_SOURCE=BUNDLED \
136 ORC_SOURCE=BUNDLED \
137 PARQUET_BUILD_EXAMPLES=ON \
138 PARQUET_BUILD_EXECUTABLES=ON \
139 PATH=/usr/lib/ccache/:$PATH \
140 PYTHON=python3