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}/ubuntu:14.04 20 21SHELL ["/bin/bash", "-o", "pipefail", "-c"] 22 23ENV DEBIAN_FRONTEND noninteractive 24RUN apt-get update -y -q && \ 25 apt-get install -y -q --no-install-recommends wget software-properties-common && \ 26 apt-get install -y -q --no-install-recommends \ 27 autoconf \ 28 ca-certificates \ 29 ccache \ 30 g++ \ 31 gcc \ 32 gdb \ 33 git \ 34 libbz2-dev \ 35 libgoogle-glog-dev \ 36 libsnappy-dev \ 37 libssl-dev \ 38 make \ 39 ninja-build \ 40 pkg-config \ 41 protobuf-compiler \ 42 python-pip \ 43 tzdata && \ 44 apt-get clean && \ 45 python -m pip install --upgrade pip && \ 46 pip install --upgrade cmake && \ 47 rm -rf /var/lib/apt/lists/* 48 49# - Flight is deactivated because the OpenSSL in Ubuntu 14.04 is too old 50# - Disabling Gandiva since LLVM 7 require gcc >= 4.9 toolchain 51# - ORC has compilation warnings that cause errors on gcc 4.8 52# - c-ares in Trusty isn't recognized by gRPC build system 53# - libprotobuf-dev / libprotoc-dev in Trusty too old for gRPC 54# - libbrotli-dev unavailable 55# - libgflags-dev is too old 56# - libre2-dev unavailable 57# - liblz4-dev is too old 58ENV ARROW_BUILD_TESTS=ON \ 59 ARROW_DEPENDENCY_SOURCE=SYSTEM \ 60 ARROW_DATASET=ON \ 61 ARROW_FLIGHT=OFF \ 62 ARROW_GANDIVA_JAVA=OFF \ 63 ARROW_GANDIVA=OFF \ 64 ARROW_HOME=/usr/local \ 65 ARROW_ORC=OFF \ 66 ARROW_PARQUET=ON \ 67 ARROW_USE_CCACHE=ON \ 68 ARROW_WITH_BROTLI=ON \ 69 ARROW_WITH_BZ2=ON \ 70 ARROW_WITH_LZ4=ON \ 71 ARROW_WITH_OPENSSL=OFF \ 72 ARROW_WITH_SNAPPY=ON \ 73 ARROW_WITH_ZLIB=ON \ 74 ARROW_WITH_ZSTD=ON \ 75 benchmark_SOURCE=BUNDLED \ 76 BOOST_SOURCE=BUNDLED \ 77 Brotli_SOURCE=BUNDLED \ 78 cares_SOURCE=BUNDLED \ 79 CC=gcc \ 80 CXX=g++ \ 81 gflags_SOURCE=BUNDLED \ 82 gRPC_SOURCE=BUNDLED \ 83 GTest_SOURCE=BUNDLED \ 84 Lz4_SOURCE=BUNDLED \ 85 ORC_SOURCE=BUNDLED \ 86 PARQUET_BUILD_EXECUTABLES=ON \ 87 PARQUET_BUILD_EXAMPLES=ON \ 88 PATH=/usr/lib/ccache/:$PATH \ 89 Protobuf_SOURCE=BUNDLED \ 90 RapidJSON_SOURCE=BUNDLED \ 91 RE2_SOURCE=BUNDLED \ 92 Thrift_SOURCE=BUNDLED \ 93 ZSTD_SOURCE=BUNDLED 94