diff --git a/docker/README.md b/docker/README.md index a0f72d404d..3cba251867 100644 --- a/docker/README.md +++ b/docker/README.md @@ -2,7 +2,7 @@ * Debian 11 and 12 * Fedora 37 -* Ubuntu 20 and 22 +* Ubuntu 20, 22, 24 ## Pre-built Images diff --git a/docker/os-list.txt b/docker/os-list.txt index 0b8634eb81..286da8c599 100644 --- a/docker/os-list.txt +++ b/docker/os-list.txt @@ -2,6 +2,7 @@ debian11 debian12 ubuntu20 ubuntu22 +ubuntu24 fedora37 ubuntu22_jdk=21 ubuntu22_jdk=21_cc=clang diff --git a/docker/ubuntu24/Dockerfile b/docker/ubuntu24/Dockerfile new file mode 100644 index 0000000000..34b3924330 --- /dev/null +++ b/docker/ubuntu24/Dockerfile @@ -0,0 +1,67 @@ +# 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. + +# ORC compile for Ubuntu 24 +# + +FROM ubuntu:24.04 +LABEL maintainer="Apache ORC project " +ARG jdk=21 +ARG cc=gcc + +RUN apt-get update +RUN apt-get install -y \ + cmake \ + git \ + libsasl2-dev \ + libssl-dev \ + make \ + curl \ + maven \ + openjdk-${jdk}-jdk \ + tzdata; \ + if [ "${cc}" = "gcc" ] ; then \ + apt-get install -y \ + gcc \ + g++ \ + ; else \ + apt-get install -y \ + clang \ + && \ + update-alternatives --set cc /usr/bin/clang && \ + update-alternatives --set c++ /usr/bin/clang++ \ + ; fi +RUN update-alternatives --set java $(update-alternatives --list java | grep ${jdk}) && \ + update-alternatives --set javac $(update-alternatives --list javac | grep ${jdk}) + +ENV CC=cc +ENV CXX=c++ + +RUN ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime +RUN mkdir -p /usr/share/zoneinfo/US +RUN ln -fs /usr/share/zoneinfo/America/Los_Angeles /usr/share/zoneinfo/US/Pacific +WORKDIR /root +VOLUME /root/.m2/repository + +CMD if [ ! -d orc ]; then \ + echo "No volume provided, building from apache main."; \ + echo "Pass '-v`pwd`:/root/orc' to docker run to build local source."; \ + git clone https://github.com/apache/orc.git -b main; \ + fi && \ + mkdir build && \ + cd build && \ + cmake ../orc && \ + make package test-out diff --git a/site/_docs/building.md b/site/_docs/building.md index 3951775491..2fcbfb2e95 100644 --- a/site/_docs/building.md +++ b/site/_docs/building.md @@ -12,7 +12,7 @@ The C++ library is supported on the following operating systems: * CentOS 7 * Debian 10 to 12 * MacOS 12 to 14 -* Ubuntu 20.04 to 22.04 +* Ubuntu 20.04 to 24.04 You'll want to install the usual set of developer tools, but at least: