This is an automated email from the ASF dual-hosted git repository.

csy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/auron.git


The following commit(s) were added to refs/heads/master by this push:
     new d4e147ff [AURON #1417] Expand build support to modern Linux 
distributions. (#1418)
d4e147ff is described below

commit d4e147ff99edd94b46004867a159055dba3842a7
Author: slfan1989 <[email protected]>
AuthorDate: Tue Oct 14 13:29:53 2025 +0800

    [AURON #1417] Expand build support to modern Linux distributions. (#1418)
---
 auron-build.sh                          | 21 ++++++++-
 dev/docker-build/centos7/Dockerfile     |  2 +-
 dev/docker-build/debian11/Dockerfile    | 77 +++++++++++++++++++++++++++++++
 dev/docker-build/docker-compose.yml     |  2 +-
 dev/docker-build/rockylinux8/Dockerfile | 82 +++++++++++++++++++++++++++++++++
 dev/docker-build/ubuntu24/Dockerfile    | 72 +++++++++++++++++++++++++++++
 6 files changed, 252 insertions(+), 4 deletions(-)

diff --git a/auron-build.sh b/auron-build.sh
index 230e6b40..80555129 100755
--- a/auron-build.sh
+++ b/auron-build.sh
@@ -25,7 +25,8 @@ print_help() {
     echo "Build Auron project with specified Maven profiles"
     echo
     echo "Options:"
-    echo "  --docker <true|false>    Build in Docker with CentOS7 (default: 
false)"
+    echo "  --docker <true|false>    Build in Docker environment (default: 
false)"
+    echo "  --image <NAME>           Docker image to use 
(centos7|ubuntu24|rockylinux8|debian11, default: centos7)"
     echo "  --pre                    Activate pre-release profile"
     echo "  --release                Activate release profile"
     echo "  --sparkver <VERSION>     Specify Spark version (e.g. 
3.0/3.1/3.2/3.3/3.4/3.5)"
@@ -40,7 +41,7 @@ print_help() {
     echo
     echo "Examples:"
     echo "  $0 --pre --sparkver 3.5 --scalaver 2.12 -DskipBuildNative"
-    echo "  $0 --docker true --clean true --skiptests true --release 
--sparkver 3.5 --scalaver 2.12 --celeborn 0.5 --uniffle 0.10 --paimon 1.2"
+    echo "  $0 --docker true --image centos7 --clean true --skiptests true 
--release --sparkver 3.5 --scalaver 2.12 --celeborn 0.5 --uniffle 0.10 --paimon 
1.2"
     exit 0
 }
 
@@ -48,6 +49,7 @@ MVN_CMD="$(dirname "$0")/build/mvn"
 
 # Initialize variables
 USE_DOCKER=false
+IMAGE_NAME="centos7"
 PRE_PROFILE=false
 RELEASE_PROFILE=false
 CLEAN=true
@@ -79,6 +81,19 @@ while [[ $# -gt 0 ]]; do
                 exit 1
             fi
             ;;
+        --image)
+            if [[ -n "$2" && "$2" != -* ]]; then
+                IMAGE_NAME="$2"
+                if [[ ! "$IMAGE_NAME" =~ 
^(centos7|ubuntu24|rockylinux8|debian11)$ ]]; then
+                    echo "ERROR: Unsupported image '$IMAGE_NAME'. Supported: 
centos7, ubuntu24, rockylinux8, debian11" >&2
+                    exit 1
+                fi
+                shift 2
+            else
+                echo "ERROR: --image requires one of: centos7, ubuntu24, 
rockylinux8, debian11" >&2
+                exit 1
+            fi
+            ;;
         --clean)
             if [[ -n "$2" && "$2" =~ ^(true|false)$ ]]; then
                 CLEAN="$2"
@@ -302,6 +317,7 @@ echo "[INFO] Build info written to $BUILD_INFO_FILE"
 
 # Execute Maven command
 if [[ "$USE_DOCKER" == true ]]; then
+    echo "[INFO] Compiling inside Docker container using image: $IMAGE_NAME"
     # In Docker mode, use multi-threaded Maven build with -T8 for faster 
compilation
     BUILD_ARGS+=("-T8")
     if [[ "$CLEAN" == true ]]; then
@@ -313,6 +329,7 @@ if [[ "$USE_DOCKER" == true ]]; then
 
     echo "[INFO] Compiling inside Docker container..."
     export AURON_BUILD_ARGS="${BUILD_ARGS[*]}"
+    export BUILD_CONTEXT="./${IMAGE_NAME}"
     exec docker-compose -f dev/docker-build/docker-compose.yml up 
--abort-on-container-exit
 else
     echo "[INFO] Compiling locally with maven args: $MVN_CMD ${MVN_ARGS[@]} $@"
diff --git a/dev/docker-build/centos7/Dockerfile 
b/dev/docker-build/centos7/Dockerfile
index 9c240bfa..1b07ac5a 100644
--- a/dev/docker-build/centos7/Dockerfile
+++ b/dev/docker-build/centos7/Dockerfile
@@ -39,7 +39,7 @@ RUN echo '. /opt/rh/devtoolset-11/enable' >> ~/.bashrc
 # install rust nightly toolchain
 RUN curl https://sh.rustup.rs > /rustup-init
 RUN chmod +x /rustup-init
-RUN /rustup-init -y --default-toolchain 
nightly-2023-08-01-x86_64-unknown-linux-gnu
+RUN /rustup-init -y --default-toolchain 
nightly-2025-05-09-x86_64-unknown-linux-gnu
 
 # install java
 RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
diff --git a/dev/docker-build/debian11/Dockerfile 
b/dev/docker-build/debian11/Dockerfile
new file mode 100644
index 00000000..20134df9
--- /dev/null
+++ b/dev/docker-build/debian11/Dockerfile
@@ -0,0 +1,77 @@
+#
+# 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.
+#
+
+# ---------------------------------------------------------------------
+# Apache Auron build environment on Debian 11
+# ---------------------------------------------------------------------
+FROM debian:11
+
+LABEL maintainer="Apache Auron Team"
+LABEL description="Debian 11 build environment for Auron project"
+
+# ---------------------------------------------------------------------
+# Environment setup
+# ---------------------------------------------------------------------
+ENV LANG=en_US.UTF-8
+ENV LC_ALL=en_US.UTF-8
+ENV TZ=UTC
+ENV DEBIAN_FRONTEND=noninteractive
+
+# ---------------------------------------------------------------------
+# Update system and install basic packages
+# ---------------------------------------------------------------------
+RUN apt-get update -y && \
+    apt-get install -y --no-install-recommends \
+      build-essential \
+      software-properties-common \
+      curl wget git unzip zip \
+      pkg-config \
+      ca-certificates openssl libssl-dev zlib1g-dev && \
+    rm -rf /var/lib/apt/lists/*
+
+# ---------------------------------------------------------------------
+# Verify GCC / G++
+# ---------------------------------------------------------------------
+RUN gcc --version && g++ --version
+
+# ---------------------------------------------------------------------
+# Install Rust (nightly toolchain)
+# ---------------------------------------------------------------------
+RUN curl https://sh.rustup.rs -sSf -o rustup-init && \
+    chmod +x rustup-init && \
+    ./rustup-init -y --default-toolchain 
nightly-2025-05-09-x86_64-unknown-linux-gnu && \
+    rm rustup-init
+ENV PATH="/root/.cargo/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Install Java (OpenJDK 11)
+# ---------------------------------------------------------------------
+RUN apt-get update -y && \
+    apt-get install -y --no-install-recommends openjdk-11-jdk && \
+    rm -rf /var/lib/apt/lists/*
+ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Set working directory
+# ---------------------------------------------------------------------
+WORKDIR /auron
+
+# ---------------------------------------------------------------------
+# Default command
+# ---------------------------------------------------------------------
+CMD ["/bin/bash"]
\ No newline at end of file
diff --git a/dev/docker-build/docker-compose.yml 
b/dev/docker-build/docker-compose.yml
index 20c948fd..27bbc922 100644
--- a/dev/docker-build/docker-compose.yml
+++ b/dev/docker-build/docker-compose.yml
@@ -19,7 +19,7 @@ version: "3"
 
 services:
   build-release:
-    build: ./centos7
+    build: ${BUILD_CONTEXT:-./centos7}
     volumes:
       - ~/.m2:/root/.m2:rw
       - ~/.sbt:/root/.sbt:rw
diff --git a/dev/docker-build/rockylinux8/Dockerfile 
b/dev/docker-build/rockylinux8/Dockerfile
new file mode 100644
index 00000000..e519c4f4
--- /dev/null
+++ b/dev/docker-build/rockylinux8/Dockerfile
@@ -0,0 +1,82 @@
+#
+# 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.
+#
+
+# ---------------------------------------------------------------------
+# Apache Auron build environment on Rocky Linux 8
+# ---------------------------------------------------------------------
+FROM rockylinux:8
+
+LABEL maintainer="Apache Auron Team"
+LABEL description="Rocky Linux 8 build environment for Auron project"
+
+# ---------------------------------------------------------------------
+# Basic environment setup
+# ---------------------------------------------------------------------
+ENV LANG=en_US.UTF-8
+ENV LC_ALL=en_US.UTF-8
+ENV TZ=UTC
+ENV DEBIAN_FRONTEND=noninteractive
+
+# ---------------------------------------------------------------------
+# Update system and install base packages (no EPEL)
+# ---------------------------------------------------------------------
+RUN dnf -y update && \
+    dnf -y groupinstall "Development Tools" && \
+    dnf -y install \
+        git curl wget unzip zip \
+        openssl openssl-devel \
+        zlib-devel pkgconfig \
+        ca-certificates dnf-plugins-core && \
+    # Disable EPEL repos if any exist (avoid metadata errors)
+    if ls /etc/yum.repos.d/epel*.repo >/dev/null 2>&1; then \
+        sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/epel*.repo; \
+    fi && \
+    dnf clean all && \
+    rm -rf /var/cache/dnf
+
+# ---------------------------------------------------------------------
+# Verify GCC / G++
+# ---------------------------------------------------------------------
+RUN gcc --version && g++ --version
+
+# ---------------------------------------------------------------------
+# Install Rust nightly toolchain
+# ---------------------------------------------------------------------
+RUN curl https://sh.rustup.rs -sSf -o rustup-init && \
+    chmod +x rustup-init && \
+    ./rustup-init -y --default-toolchain 
nightly-2025-05-09-x86_64-unknown-linux-gnu && \
+    rm rustup-init
+ENV PATH="/root/.cargo/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Install Java (OpenJDK 8)
+# ---------------------------------------------------------------------
+RUN dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel && \
+    dnf clean all && \
+    rm -rf /var/cache/dnf
+ENV JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Set working directory
+# ---------------------------------------------------------------------
+WORKDIR /auron
+
+# ---------------------------------------------------------------------
+# Default command
+# ---------------------------------------------------------------------
+CMD ["/bin/bash"]
\ No newline at end of file
diff --git a/dev/docker-build/ubuntu24/Dockerfile 
b/dev/docker-build/ubuntu24/Dockerfile
new file mode 100644
index 00000000..b8a4d54e
--- /dev/null
+++ b/dev/docker-build/ubuntu24/Dockerfile
@@ -0,0 +1,72 @@
+#
+# 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:24.04
+
+LABEL maintainer="Apache Auron Team"
+LABEL description="Ubuntu 24.04 build environment for Auron project"
+
+# ---------------------------------------------------------------------
+# Update system and install basic tools
+# ---------------------------------------------------------------------
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update -y && \
+    apt-get install -y --no-install-recommends \
+      build-essential \
+      software-properties-common \
+      curl wget unzip zip \
+      git ca-certificates openssl libssl-dev \
+      pkg-config libz-dev && \
+    rm -rf /var/lib/apt/lists/*
+
+# ---------------------------------------------------------------------
+# Install GCC / G++
+# ---------------------------------------------------------------------
+RUN apt-get update -y && \
+    apt-get install -y gcc g++ && \
+    update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 100 && \
+    update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 100 && \
+    rm -rf /var/lib/apt/lists/*
+
+# ---------------------------------------------------------------------
+# Install Rust nightly toolchain
+# ---------------------------------------------------------------------
+RUN curl https://sh.rustup.rs -sSf -o rustup-init && \
+    chmod +x rustup-init && \
+    ./rustup-init -y --default-toolchain 
nightly-2025-05-09-x86_64-unknown-linux-gnu && \
+    rm rustup-init
+ENV PATH="/root/.cargo/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Install Java (OpenJDK 8)
+# ---------------------------------------------------------------------
+RUN apt-get update -y && \
+    apt-get install -y openjdk-8-jdk && \
+    rm -rf /var/lib/apt/lists/*
+ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+# ---------------------------------------------------------------------
+# Set working directory
+# ---------------------------------------------------------------------
+WORKDIR /auron
+
+# ---------------------------------------------------------------------
+# Default command
+# ---------------------------------------------------------------------
+CMD ["/bin/bash"]

Reply via email to