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