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

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


The following commit(s) were added to refs/heads/master by this push:
     new af24f480164d chore: Add scripts and docs for Docker image used in 
Azure CI (#17602)
af24f480164d is described below

commit af24f480164d417c69e338a38da87e41fe03142e
Author: Y Ethan Guo <[email protected]>
AuthorDate: Sat Dec 20 22:31:25 2025 -0800

    chore: Add scripts and docs for Docker image used in Azure CI (#17602)
---
 packaging/bundle-validation/README.md        | 17 +++++++++
 packaging/bundle-validation/azure/Dockerfile | 57 ++++++++++++++++++++++++++++
 packaging/bundle-validation/azure/build.sh   | 21 ++++++++++
 3 files changed, 95 insertions(+)

diff --git a/packaging/bundle-validation/README.md 
b/packaging/bundle-validation/README.md
index c93a4481dbf0..d03dbec12de5 100644
--- a/packaging/bundle-validation/README.md
+++ b/packaging/bundle-validation/README.md
@@ -58,6 +58,23 @@ image. If you need faster iteration for local build, you may 
use the `Dockerfile
 instruction for downloads, which provides caching across builds. This 
increases the size of the generated image compared
 to `base/` and the image should only be used for development only and not be 
pushed to remote.
 
+## Building Image for Azure CI
+
+The `Dockerfile` and build script for the Docker image used by Azure CI are 
under `azure/`. To build the image:
+
+```shell
+cd azure
+./build.sh
+```
+
+This builds and tags the image as 
`apachehudi/hudi-ci-bundle-validation-base:azure_ci_test_base_java11`.
+
+To push the image to Docker Hub (only from a few PMCs with permissions):
+
+```shell
+docker push apachehudi/hudi-ci-bundle-validation-base:azure_ci_test_base_java11
+```
+
 ## Running Bundle Validation on a Release Candidate
 
 The bundle validation on a release candidate is specified in the GitHub Action 
job `validate-release-candidate-bundles`
diff --git a/packaging/bundle-validation/azure/Dockerfile 
b/packaging/bundle-validation/azure/Dockerfile
new file mode 100644
index 000000000000..d183caad2846
--- /dev/null
+++ b/packaging/bundle-validation/azure/Dockerfile
@@ -0,0 +1,57 @@
+# 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 --platform=linux/amd64 adoptopenjdk/openjdk11:alpine
+
+RUN apk add --no-cache --upgrade bash curl jq git maven
+
+# Install thrift 0.13.0 from source (compiler only, skip library)
+RUN apk add --no-cache libstdc++ \
+    && apk add --no-cache --virtual .build-deps \
+        autoconf \
+        automake \
+        bison \
+        boost-dev \
+        flex \
+        g++ \
+        libevent-dev \
+        libtool \
+        make \
+        openssl-dev \
+        zlib-dev \
+    && curl -sSL 
https://archive.apache.org/dist/thrift/0.13.0/thrift-0.13.0.tar.gz | tar xz \
+    && cd thrift-0.13.0 \
+    && ./configure --prefix=/usr/local \
+        --without-python \
+        --without-py3 \
+        --without-nodejs \
+        --without-go \
+        --without-ruby \
+        --without-php \
+        --without-erlang \
+        --without-perl \
+        --without-lua \
+        --without-rs \
+        --without-swift \
+        --without-dotnetcore \
+        --without-haskell \
+        --without-d \
+        --without-c_glib \
+    && make -C compiler/cpp -j$(nproc) \
+    && make -C compiler/cpp install \
+    && cd .. \
+    && rm -rf thrift-0.13.0 \
+    && apk del .build-deps
diff --git a/packaging/bundle-validation/azure/build.sh 
b/packaging/bundle-validation/azure/build.sh
new file mode 100755
index 000000000000..89bd7c63da12
--- /dev/null
+++ b/packaging/bundle-validation/azure/build.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# 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.
+#
+docker build -t hudi-ci-bundle-validation-base:azure_ci_test_base_java11 .
+docker image tag hudi-ci-bundle-validation-base:azure_ci_test_base_java11 
apachehudi/hudi-ci-bundle-validation-base:azure_ci_test_base_java11

Reply via email to