From daf53ea8112267c30d37aeb9d214f52d6186b2f7 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Tue, 8 Jul 2025 01:17:25 +0000 Subject: [PATCH 1/8] 24.03-lts-sp1 update kudu to 1.18.0 --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 55 +++++++ .../kudu/1.18.0/24.03-lts-sp1/entrypoint.sh | 140 ++++++++++++++++++ Storage/kudu/meta.yml | 4 +- 3 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile create mode 100644 Storage/kudu/1.18.0/24.03-lts-sp1/entrypoint.sh diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile new file mode 100644 index 00000000..54802aa7 --- /dev/null +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -0,0 +1,55 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} AS build + +ARG VERSION=1.18.0 + +RUN yum install -y autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain \ + flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel krb5-server krb5-workstation libtool \ + make openssl-devel patch pkgconfig rsync unzip vim-common which hostname memkind gem graphviz \ + ruby-devel zlib-devel openeuler-lsb && \ + ln -s /usr/bin/python3 /usr/bin/python + +RUN curl -fSL --output kudu.tar.gz https://github.com/apache/kudu/archive/refs/tags/${VERSION}.tar.gz && \ + mkdir -p /kudu && tar -zvxf kudu.tar.gz -C /kudu --strip-components=1 && \ + rm -f kudu.tar.gz && yum clean all + +RUN cd /kudu && \ + build-support/enable_devtoolset.sh && \ + thirdparty/build-if-necessary.sh + +RUN mkdir -p /kudu/build/release && cd /kudu/build/release && \ + ../../build-support/enable_devtoolset.sh && \ + ../../thirdparty/installed/common/bin/cmake \ + -DNO_TESTS=1 \ + -DCMAKE_BUILD_TYPE=release ../.. && \ + make -j"$(nproc)" && \ + make DESTDIR=/opt/kudu install && \ + ln -s /kudu/build/release/bin/kudu /usr/bin/kudu + + +FROM ${BASE} + +ARG BUILD_DIR="/kudu" +ARG INSTALL_DIR="/opt/kudu" +ARG DATA_DIR="/var/lib/kudu" + +COPY --chown=kudu:kudu entrypoint.sh / +RUN yum install -y shadow-utils && \ + groupadd -g 1000 kudu || groupmod -n kudu $(getent group 1000 | cut -d: -f1) && \ + useradd --shell /bin/bash -u 1000 -g kudu -m kudu && \ + mkdir -p ${INSTALL_DIR} && chown -R kudu:kudu ${INSTALL_DIR} && \ + mkdir -p ${DATA_DIR} && chown -R kudu:kudu ${DATA_DIR} && \ + chmod +x /entrypoint.sh + +WORKDIR $INSTALL_DIR/bin +COPY --chown=kudu:kudu --from=build ${BUILD_DIR}/build/latest/bin/kudu ./ +ENV PATH=$INSTALL_DIR/bin/:$PATH + +WORKDIR $INSTALL_DIR +COPY --chown=kudu:kudu --from=build ${BUILD_DIR}/www ./www + +USER kudu + + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["help"] \ No newline at end of file diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/entrypoint.sh b/Storage/kudu/1.18.0/24.03-lts-sp1/entrypoint.sh new file mode 100644 index 00000000..92a636de --- /dev/null +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/entrypoint.sh @@ -0,0 +1,140 @@ +#!/bin/bash + +set -e +set -o pipefail + +function print_help { + echo "Supported commands:" + echo " master - Start a Kudu Master" + echo " tserver - Start a Kudu TServer" + echo " kudu - Run the Kudu CLI" + echo " help - print useful information and exit" + echo "" + echo "Other commands can be specified to run shell commands." + echo "" + echo "Environment variables:" + echo "KUDU_MASTERS:" + echo " Defines the kudu-master and kudu-tserver configured master addresses." + echo " Defaults to localhost." + echo "DATA_DIR:" + echo " Defines the root directory to use. Subdirectories are added depending on whether a " + echo " Kudu master or a Kudu tablet server is being deployed. Ignored if the FS_WAL_DIR " + echo " environment variable is set." + echo " NOTE: this variable is deprecated. FS_WAL_DIR should be used instead." + echo " Defaults to /var/lib/kudu." + echo "FS_WAL_DIR:" + echo " Defines the WAL directory to use. Takes precedence over the DATA_DIR environment " + echo " variable." + echo "FS_DATA_DIRS:" + echo " Defines the data directories to use. If set, the FS_WAL_DIR environment variable " + echo " must also be set." + echo " Defaults to the value of the FS_WAL_DIR environment variable." + echo "MASTER_ARGS:" + echo " Defines custom arguments passed to kudu-master." + echo " Defaults to an empty set." + echo " kudu-master is run with the set of arguments built from" + echo " DEFAULT_ARGS appended by MASTER_ARGS, so Kudu flags in DEFAULT_ARGS" + echo " can be overridden by corresponding flags in MASTER_ARGS." + echo "TSERVER_ARGS:" + echo " Defines custom arguments passed to kudu-tserver." + echo " Defaults to an empty set." + echo " kudu-tserver is run with the set of arguments built from" + echo " DEFAULT_ARGS appended by TSERVER_ARGS, so Kudu flags in DEFAULT_ARGS" + echo " can be overridden by corresponding flags in TSERVER_ARGS." + echo "DEFAULT_ARGS:" + echo " Defines a recommended base set of arguments." +} + +if [[ -z "$FS_WAL_DIR" && -n "$FS_DATA_DIRS" ]]; then + echo "If FS_DATA_DIRS is set, FS_WAL_DIR must also be set" + echo "FS_WAL_DIR: $FS_WAL_DIR" + echo "FS_DATA_DIRS: $FS_DATA_DIRS" + exit 1 +fi + +DATA_DIR=${DATA_DIR:="/var/lib/kudu"} +if [[ -n "$FS_WAL_DIR" ]]; then + # Use the WAL directory for data if a data directory is not specified. + WAL_DIR="$FS_WAL_DIR" + DATA_DIRS=${FS_DATA_DIRS:="$FS_WAL_DIR"} +else + # If no WAL directory is specified, use a subdirectory in the root directory. + WAL_DIR="$DATA_DIR/$1" + DATA_DIRS="$DATA_DIR/$1" +fi + +# Define the defaults environment variables. +KUDU_MASTERS=${KUDU_MASTERS:=""} + # TODO: Remove use_hybrid_clock=false when ntpd is setup. +DEFAULT_ARGS="--fs_wal_dir=$WAL_DIR \ + --fs_data_dirs=$DATA_DIRS \ + --webserver_doc_root=/opt/kudu/www \ + --stderrthreshold=0 \ + --use_hybrid_clock=false" +MASTER_ARGS=${MASTER_ARGS:=""} +TSERVER_ARGS=${TSERVER_ARGS:=""} + +# Wait until the master hosts can be resolved. +# +# Without this Kudu will fail with "Name or service not known" errors +# on startup. +# +# Gives a maximum of 5 attempts/seconds to each host. On failure +# falls through without failing to still give Kudu a chance to startup +# or fail on it's own. +function wait_for_master_hosts() { + IFS="," + for HOST in $KUDU_MASTERS + do + MAX_ATTEMPTS=5 + ATTEMPTS=0 + until `ping -c1 "$HOST" &>/dev/null;` || [[ "$ATTEMPTS" -eq "$MAX_ATTEMPTS" ]]; do + ATTEMPTS=$((ATTEMPTS + 1)) + sleep 2; + done + done + unset IFS +} + +function make_directories() { + IFS="," + mkdir -p $WAL_DIR + for DIR in $DATA_DIRS + do + mkdir -p $DIR + done + unset IFS +} + +# If no arguments are passed, print the help. +if [[ -z "$1" ]]; then + print_help + exit 1 +fi + +# Note: we use "master" and "tserver" here so the kudu-master and kudu-tserver +# binaries can be manually invoked if needed. +if [[ "$1" == "master" ]]; then + make_directories + wait_for_master_hosts + # Supply --master_addresses even if a single master address is specified. + if [[ -n "$KUDU_MASTERS" ]]; then + MASTER_ARGS="--master_addresses=$KUDU_MASTERS $MASTER_ARGS" + fi + exec kudu master run ${DEFAULT_ARGS} ${MASTER_ARGS} +elif [[ "$1" == "tserver" ]]; then + make_directories + wait_for_master_hosts + if [[ -n "$KUDU_MASTERS" ]]; then + TSERVER_ARGS="--tserver_master_addrs=$KUDU_MASTERS $TSERVER_ARGS" + else + TSERVER_ARGS="--tserver_master_addrs=localhost $TSERVER_ARGS" + fi + exec kudu tserver run ${DEFAULT_ARGS} ${TSERVER_ARGS} +elif [[ "$1" == "help" ]]; then + print_help + exit 0 +fi + +# Support calling anything else in the container. +exec "$@" \ No newline at end of file diff --git a/Storage/kudu/meta.yml b/Storage/kudu/meta.yml index 10ca7264..f706d62e 100644 --- a/Storage/kudu/meta.yml +++ b/Storage/kudu/meta.yml @@ -1,2 +1,4 @@ 1.17.1-oe2403lts: - path: 1.17.1/24.03-lts/Dockerfile \ No newline at end of file + path: 1.17.1/24.03-lts/Dockerfile +1.18.0-oe2403sp1: + path: 1.18.0/24.03-lts-sp1/Dockerfile \ No newline at end of file -- Gitee From b770edb982786d797df1cf0651590ac142ebf983 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Tue, 8 Jul 2025 08:36:01 +0000 Subject: [PATCH 2/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index 54802aa7..1739344c 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -4,7 +4,7 @@ FROM ${BASE} AS build ARG VERSION=1.18.0 RUN yum install -y autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain \ - flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel krb5-server krb5-workstation libtool \ + flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel krb5-server krb5-workstation libtool krb5-devel \ make openssl-devel patch pkgconfig rsync unzip vim-common which hostname memkind gem graphviz \ ruby-devel zlib-devel openeuler-lsb && \ ln -s /usr/bin/python3 /usr/bin/python -- Gitee From d008c09fa48a02abbbcad4508658848288ce5630 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Tue, 8 Jul 2025 12:53:20 +0000 Subject: [PATCH 3/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index 1739344c..bad1c27a 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -22,6 +22,7 @@ RUN mkdir -p /kudu/build/release && cd /kudu/build/release && \ ../../thirdparty/installed/common/bin/cmake \ -DNO_TESTS=1 \ -DCMAKE_BUILD_TYPE=release ../.. && \ + ln -s /usr/include/c++/12/cstdint /usr/include/cstdint && \ make -j"$(nproc)" && \ make DESTDIR=/opt/kudu install && \ ln -s /kudu/build/release/bin/kudu /usr/bin/kudu -- Gitee From 0a8936d0a7b472134881d9c6cd3e7a4ced1d290f Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Wed, 9 Jul 2025 01:03:48 +0000 Subject: [PATCH 4/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index bad1c27a..156cfe1a 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -6,7 +6,7 @@ ARG VERSION=1.18.0 RUN yum install -y autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain \ flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel krb5-server krb5-workstation libtool krb5-devel \ make openssl-devel patch pkgconfig rsync unzip vim-common which hostname memkind gem graphviz \ - ruby-devel zlib-devel openeuler-lsb && \ + ruby-devel zlib-devel openeuler-lsb libstdc++-devel && \ ln -s /usr/bin/python3 /usr/bin/python RUN curl -fSL --output kudu.tar.gz https://github.com/apache/kudu/archive/refs/tags/${VERSION}.tar.gz && \ -- Gitee From ea9e78117de817d11f4c3ad2f4205eda04afb0d0 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Wed, 9 Jul 2025 07:13:46 +0000 Subject: [PATCH 5/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index 156cfe1a..13d629e6 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -21,7 +21,8 @@ RUN mkdir -p /kudu/build/release && cd /kudu/build/release && \ ../../build-support/enable_devtoolset.sh && \ ../../thirdparty/installed/common/bin/cmake \ -DNO_TESTS=1 \ - -DCMAKE_BUILD_TYPE=release ../.. && \ + -DCMAKE_BUILD_TYPE=release ../.. \ + -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12" ../.. && \ ln -s /usr/include/c++/12/cstdint /usr/include/cstdint && \ make -j"$(nproc)" && \ make DESTDIR=/opt/kudu install && \ -- Gitee From a9999f479973a36865917794f69147a14af8f983 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Mon, 14 Jul 2025 11:35:32 +0000 Subject: [PATCH 6/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index 13d629e6..d9093d2b 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -15,15 +15,13 @@ RUN curl -fSL --output kudu.tar.gz https://github.com/apache/kudu/archive/refs/t RUN cd /kudu && \ build-support/enable_devtoolset.sh && \ - thirdparty/build-if-necessary.sh - -RUN mkdir -p /kudu/build/release && cd /kudu/build/release && \ + thirdparty/build-if-necessary.sh && \ + mkdir -p /kudu/build/release && cd /kudu/build/release && \ ../../build-support/enable_devtoolset.sh && \ ../../thirdparty/installed/common/bin/cmake \ -DNO_TESTS=1 \ -DCMAKE_BUILD_TYPE=release ../.. \ -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12" ../.. && \ - ln -s /usr/include/c++/12/cstdint /usr/include/cstdint && \ make -j"$(nproc)" && \ make DESTDIR=/opt/kudu install && \ ln -s /kudu/build/release/bin/kudu /usr/bin/kudu -- Gitee From 82e64729d7e7196699b787bf1b386eda041001d1 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Tue, 15 Jul 2025 12:21:22 +0000 Subject: [PATCH 7/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index d9093d2b..3148e4d9 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -21,7 +21,7 @@ RUN cd /kudu && \ ../../thirdparty/installed/common/bin/cmake \ -DNO_TESTS=1 \ -DCMAKE_BUILD_TYPE=release ../.. \ - -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12" ../.. && \ + -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12 -I/usr/include/c++/12/aarch64-openEuler-linux" ../.. && \ make -j"$(nproc)" && \ make DESTDIR=/opt/kudu install && \ ln -s /kudu/build/release/bin/kudu /usr/bin/kudu -- Gitee From a3756b8e41521160aa382f331f6d857a2432e133 Mon Sep 17 00:00:00 2001 From: openeuler_bot <673672685@qq.com> Date: Wed, 16 Jul 2025 01:06:07 +0000 Subject: [PATCH 8/8] update Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile. Signed-off-by: openeuler_bot <673672685@qq.com> --- Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile index 3148e4d9..598464ba 100644 --- a/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile +++ b/Storage/kudu/1.18.0/24.03-lts-sp1/Dockerfile @@ -1,6 +1,7 @@ ARG BASE=openeuler/openeuler:24.03-lts-sp1 FROM ${BASE} AS build - +ARG TARGETARCH +ARG BUILDARCH ARG VERSION=1.18.0 RUN yum install -y autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain \ @@ -13,7 +14,13 @@ RUN curl -fSL --output kudu.tar.gz https://github.com/apache/kudu/archive/refs/t mkdir -p /kudu && tar -zvxf kudu.tar.gz -C /kudu --strip-components=1 && \ rm -f kudu.tar.gz && yum clean all -RUN cd /kudu && \ +RUN yum -y update && \ + if [ "$TARGETARCH" = "amd64" ]; then \ + BUILDARCH="x86_64"; \ + elif [ "$TARGETARCH" = "arm64" ]; then \ + BUILDARCH="aarch64"; \ + fi && \ + cd /kudu && \ build-support/enable_devtoolset.sh && \ thirdparty/build-if-necessary.sh && \ mkdir -p /kudu/build/release && cd /kudu/build/release && \ @@ -21,7 +28,7 @@ RUN cd /kudu && \ ../../thirdparty/installed/common/bin/cmake \ -DNO_TESTS=1 \ -DCMAKE_BUILD_TYPE=release ../.. \ - -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12 -I/usr/include/c++/12/aarch64-openEuler-linux" ../.. && \ + -DCMAKE_CXX_FLAGS="-I/usr/include/c++/12 -I/usr/include/c++/12/${BUILDARCH}-openEuler-linux" ../.. && \ make -j"$(nproc)" && \ make DESTDIR=/opt/kudu install && \ ln -s /kudu/build/release/bin/kudu /usr/bin/kudu -- Gitee