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

voonhous pushed a commit to branch release-1.2.1
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit 8d0358e760dfa4e57a380b7c8171c5f795b4b33a
Author: voonhous <[email protected]>
AuthorDate: Thu Jun 4 11:32:01 2026 +0800

    chore(docker): silence Dockerfile lint warnings across image set (#18664)
    
    Three classes of buildkit warnings are addressed in the Hudi docker tree:
    
    - LegacyKeyValueFormat: rewrite all `ENV KEY VALUE` to `ENV KEY=VALUE`
      across 13 Dockerfiles. Quoted values and ${VAR} expansion preserved.
    - UndefinedVar: re-declare HADOOP_DN_PORT, HADOOP_WEBHDFS_PORT, and
      HADOOP_HISTORY_PORT as ARG after the FROM line in datanode, namenode,
      and historyserver. Pre-FROM ARGs do not propagate into the build stage,
      so the corresponding ENV expansions were silently empty.
    - JSONArgsRecommended: change `CMD startup.sh` to `CMD ["startup.sh"]`
      in hive_base so SIGTERM is delivered to the script directly instead of
      through a /bin/sh -c wrapper.
    
    No runtime behavior change beyond the metastore/hiveserver now receiving
    shutdown signals correctly.
    
    (cherry picked from commit c40f765ce58d306ed299499781690f785c6bfdd9)
---
 docker/hoodie/hadoop/base/Dockerfile          | 10 +++++-----
 docker/hoodie/hadoop/base_java11/Dockerfile   | 10 +++++-----
 docker/hoodie/hadoop/base_java17/Dockerfile   |  2 +-
 docker/hoodie/hadoop/datanode/Dockerfile      |  3 ++-
 docker/hoodie/hadoop/historyserver/Dockerfile |  3 ++-
 docker/hoodie/hadoop/hive_base/Dockerfile     | 14 +++++++-------
 docker/hoodie/hadoop/namenode/Dockerfile      |  3 ++-
 docker/hoodie/hadoop/prestobase/Dockerfile    | 20 ++++++++++----------
 docker/hoodie/hadoop/spark_base/Dockerfile    | 26 +++++++++++++-------------
 docker/hoodie/hadoop/sparkadhoc/Dockerfile    | 10 +++++-----
 docker/hoodie/hadoop/sparkmaster/Dockerfile   |  6 +++---
 docker/hoodie/hadoop/sparkworker/Dockerfile   |  6 +++---
 docker/hoodie/hadoop/trinobase/Dockerfile     |  8 ++++----
 13 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/docker/hoodie/hadoop/base/Dockerfile 
b/docker/hoodie/hadoop/base/Dockerfile
index 546da57459d2..1a36fc344e36 100644
--- a/docker/hoodie/hadoop/base/Dockerfile
+++ b/docker/hoodie/hadoop/base/Dockerfile
@@ -20,12 +20,12 @@ MAINTAINER Hoodie
 USER root
 
 # Default to UTF-8 file.encoding
-ENV LANG C.UTF-8
+ENV LANG=C.UTF-8
 
-ARG HADOOP_VERSION=3.3.4 
+ARG HADOOP_VERSION=3.3.4
 ARG 
HADOOP_URL=https://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz
-ENV HADOOP_VERSION ${HADOOP_VERSION}
-ENV HADOOP_URL ${HADOOP_URL}
+ENV HADOOP_VERSION=${HADOOP_VERSION}
+ENV HADOOP_URL=${HADOOP_URL}
 
 RUN set -x \
     && DEBIAN_FRONTEND=noninteractive apt-get -yq update && apt-get -yq 
install curl wget netcat procps \
@@ -46,7 +46,7 @@ ENV MULTIHOMED_NETWORK=1
 ENV HADOOP_HOME=${HADOOP_PREFIX}
 ENV HADOOP_INSTALL=${HADOOP_HOME}
 ENV USER=root
-ENV PATH /usr/bin:/bin:$HADOOP_PREFIX/bin/:$PATH
+ENV PATH=/usr/bin:/bin:$HADOOP_PREFIX/bin/:$PATH
 
 # Exposing a union of ports across hadoop versions
 # Well known ports including ssh
diff --git a/docker/hoodie/hadoop/base_java11/Dockerfile 
b/docker/hoodie/hadoop/base_java11/Dockerfile
index 42333067b569..121f94cd09ea 100644
--- a/docker/hoodie/hadoop/base_java11/Dockerfile
+++ b/docker/hoodie/hadoop/base_java11/Dockerfile
@@ -20,12 +20,12 @@ LABEL maintainer="Hoodie"
 USER root
 
 # Default to UTF-8 file.encoding
-ENV LANG C.UTF-8
+ENV LANG=C.UTF-8
 
-ARG HADOOP_VERSION=2.8.4 
+ARG HADOOP_VERSION=2.8.4
 ARG 
HADOOP_URL=https://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz
-ENV HADOOP_VERSION ${HADOOP_VERSION}
-ENV HADOOP_URL ${HADOOP_URL}
+ENV HADOOP_VERSION=${HADOOP_VERSION}
+ENV HADOOP_URL=${HADOOP_URL}
 
 RUN set -x \
     && DEBIAN_FRONTEND=noninteractive apt-get -yq update && apt-get -yq 
install curl wget netcat procps \
@@ -45,7 +45,7 @@ ENV MULTIHOMED_NETWORK=1
 ENV HADOOP_HOME=${HADOOP_PREFIX}
 ENV HADOOP_INSTALL=${HADOOP_HOME}
 ENV USER=root
-ENV PATH /usr/bin:/bin:$HADOOP_PREFIX/bin/:$PATH
+ENV PATH=/usr/bin:/bin:$HADOOP_PREFIX/bin/:$PATH
 
 # Exposing a union of ports across hadoop versions
 # Well known ports including ssh
diff --git a/docker/hoodie/hadoop/base_java17/Dockerfile 
b/docker/hoodie/hadoop/base_java17/Dockerfile
index a5c265d3aaac..6d513fd3eb07 100644
--- a/docker/hoodie/hadoop/base_java17/Dockerfile
+++ b/docker/hoodie/hadoop/base_java17/Dockerfile
@@ -36,7 +36,7 @@ LABEL maintainer="Hoodie"
 USER root
 
 # Default to UTF-8 file.encoding
-ENV LANG C.UTF-8
+ENV LANG=C.UTF-8
 
 ARG HADOOP_VERSION=3.4.0
 ENV HADOOP_VERSION=${HADOOP_VERSION}
diff --git a/docker/hoodie/hadoop/datanode/Dockerfile 
b/docker/hoodie/hadoop/datanode/Dockerfile
index bc157214f182..b37a60fd1005 100644
--- a/docker/hoodie/hadoop/datanode/Dockerfile
+++ b/docker/hoodie/hadoop/datanode/Dockerfile
@@ -20,7 +20,8 @@ ARG HADOOP_DN_PORT=50075
 ARG BASE_IMAGE_TAG=java11
 FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-base-${BASE_IMAGE_TAG}:latest
 
-ENV HADOOP_DN_PORT ${HADOOP_DN_PORT}
+ARG HADOOP_DN_PORT
+ENV HADOOP_DN_PORT=${HADOOP_DN_PORT}
 
 ENV HDFS_CONF_dfs_datanode_data_dir=file:///hadoop/dfs/data
 RUN mkdir -p /hadoop/dfs/data
diff --git a/docker/hoodie/hadoop/historyserver/Dockerfile 
b/docker/hoodie/hadoop/historyserver/Dockerfile
index 0c77188e3e51..a7700399f89d 100644
--- a/docker/hoodie/hadoop/historyserver/Dockerfile
+++ b/docker/hoodie/hadoop/historyserver/Dockerfile
@@ -35,7 +35,8 @@ RUN wget 
https://repo1.maven.org/maven2/org/openlabtesting/leveldbjni/leveldbjni
 ENV LD_LIBRARY_PATH="/usr/lib"
 ENV JAVA_LIBRARY_PATH="/usr/lib"
 
-ENV HADOOP_HISTORY_PORT ${HADOOP_HISTORY_PORT}
+ARG HADOOP_HISTORY_PORT
+ENV HADOOP_HISTORY_PORT=${HADOOP_HISTORY_PORT}
 
 ENV 
YARN_CONF_yarn_timeline___service_leveldb___timeline___store_path=/hadoop/yarn/timeline
 RUN mkdir -p /hadoop/yarn/timeline
diff --git a/docker/hoodie/hadoop/hive_base/Dockerfile 
b/docker/hoodie/hadoop/hive_base/Dockerfile
index f77c4c4e455e..b302e9002767 100644
--- a/docker/hoodie/hadoop/hive_base/Dockerfile
+++ b/docker/hoodie/hadoop/hive_base/Dockerfile
@@ -19,16 +19,16 @@ ARG HADOOP_VERSION=3.3.4
 ARG BASE_IMAGE_TAG=java11
 FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-base-${BASE_IMAGE_TAG}:latest
 
-ENV HIVE_HOME /opt/hive
-ENV PATH $HIVE_HOME/bin:$PATH
-ENV HADOOP_HOME /opt/hadoop-$HADOOP_VERSION
+ENV HIVE_HOME=/opt/hive
+ENV PATH=$HIVE_HOME/bin:$PATH
+ENV HADOOP_HOME=/opt/hadoop-$HADOOP_VERSION
 
 WORKDIR /opt
 
 ARG HIVE_VERSION=3.1.3
 ARG 
HIVE_URL=https://archive.apache.org/dist/hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz
-ENV HIVE_VERSION ${HIVE_VERSION}
-ENV HIVE_URL ${HIVE_URL}
+ENV HIVE_VERSION=${HIVE_VERSION}
+ENV HIVE_URL=${HIVE_URL}
 
 #Install Hive MySQL, PostgreSQL JDBC
 RUN echo "Hive URL is :${HIVE_URL}" && wget ${HIVE_URL} -O hive.tar.gz && \
@@ -62,9 +62,9 @@ RUN chmod +x /usr/local/bin/startup.sh
 COPY entrypoint.sh /usr/local/bin/
 RUN chmod +x /usr/local/bin/entrypoint.sh
 
-ENV PATH $HIVE_HOME/bin/:$PATH
+ENV PATH=$HIVE_HOME/bin/:$PATH
 # NOTE: This is the only battle-proven method to inject jars into Hive CLI
 ENV AUX_CLASSPATH=file://${HUDI_HADOOP_BUNDLE}
 
 ENTRYPOINT ["entrypoint.sh"]
-CMD startup.sh
+CMD ["startup.sh"]
diff --git a/docker/hoodie/hadoop/namenode/Dockerfile 
b/docker/hoodie/hadoop/namenode/Dockerfile
index 33e2ab4b9955..402d7306297e 100644
--- a/docker/hoodie/hadoop/namenode/Dockerfile
+++ b/docker/hoodie/hadoop/namenode/Dockerfile
@@ -20,7 +20,8 @@ ARG HADOOP_WEBHDFS_PORT=50070
 ARG BASE_IMAGE_TAG=java11
 FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-base-${BASE_IMAGE_TAG}:latest
 
-ENV HADOOP_WEBHDFS_PORT ${HADOOP_WEBHDFS_PORT}
+ARG HADOOP_WEBHDFS_PORT
+ENV HADOOP_WEBHDFS_PORT=${HADOOP_WEBHDFS_PORT}
 
 ENV HDFS_CONF_dfs_namenode_name_dir=file:///hadoop/dfs/name
 RUN mkdir -p /hadoop/dfs/name
diff --git a/docker/hoodie/hadoop/prestobase/Dockerfile 
b/docker/hoodie/hadoop/prestobase/Dockerfile
index d40aa9c8f273..7cc82d5421c4 100644
--- a/docker/hoodie/hadoop/prestobase/Dockerfile
+++ b/docker/hoodie/hadoop/prestobase/Dockerfile
@@ -25,15 +25,15 @@ FROM 
apachehudi/hudi-hadoop_${HADOOP_VERSION}-base-${BASE_IMAGE_TAG}:latest as h
 
 ARG PRESTO_VERSION=0.271
 
-ENV PRESTO_VERSION       ${PRESTO_VERSION}
-ENV PRESTO_HOME          /opt/presto-server-${PRESTO_VERSION}
-ENV PRESTO_CONF_DIR      ${PRESTO_HOME}/etc
-ENV PRESTO_LOG_DIR       /var/log/presto
-ENV PRESTO_JVM_MAX_HEAP  2G
-ENV PRESTO_QUERY_MAX_MEMORY          1GB
-ENV PRESTO_QUERY_MAX_MEMORY_PER_NODE 512MB
-ENV PRESTO_DISCOVERY_URI  http://presto-coordinator-1:8090
-ENV PATH        $PATH:${PRESTO_HOME}/bin
+ENV PRESTO_VERSION=${PRESTO_VERSION}
+ENV PRESTO_HOME=/opt/presto-server-${PRESTO_VERSION}
+ENV PRESTO_CONF_DIR=${PRESTO_HOME}/etc
+ENV PRESTO_LOG_DIR=/var/log/presto
+ENV PRESTO_JVM_MAX_HEAP=2G
+ENV PRESTO_QUERY_MAX_MEMORY=1GB
+ENV PRESTO_QUERY_MAX_MEMORY_PER_NODE=512MB
+ENV PRESTO_DISCOVERY_URI=http://presto-coordinator-1:8090
+ENV PATH=$PATH:${PRESTO_HOME}/bin
 
 RUN set -x \
     && DEBIAN_FRONTEND=noninteractive apt-get -yq update \
@@ -78,7 +78,7 @@ COPY lib/*  /usr/local/lib/
 RUN chmod +x /usr/local/bin/entrypoint.sh
 
 ADD target/ /var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/
-ENV HUDI_PRESTO_BUNDLE 
/var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/hudi-presto-bundle.jar
+ENV 
HUDI_PRESTO_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/hudi-presto-bundle.jar
 RUN  cp ${HUDI_PRESTO_BUNDLE} ${PRESTO_HOME}/plugin/hive-hadoop2/
 # TODO: the latest master of Presto relies on hudi-presto-bundle, while 
current Presto releases
 # rely on hudi-common and hudi-hadoop-mr 0.9.0, which are pulled in 
plugin/hive-hadoop2/ in the
diff --git a/docker/hoodie/hadoop/spark_base/Dockerfile 
b/docker/hoodie/hadoop/spark_base/Dockerfile
index 4210faf21bfe..4a064971536e 100644
--- a/docker/hoodie/hadoop/spark_base/Dockerfile
+++ b/docker/hoodie/hadoop/spark_base/Dockerfile
@@ -19,15 +19,15 @@ ARG HADOOP_VERSION=3.3.4
 ARG HIVE_VERSION=3.1.3
 FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-hive_${HIVE_VERSION}
 
-ENV ENABLE_INIT_DAEMON true
-ENV INIT_DAEMON_BASE_URI http://identifier/init-daemon
-ENV INIT_DAEMON_STEP spark_master_init
+ENV ENABLE_INIT_DAEMON=true
+ENV INIT_DAEMON_BASE_URI=http://identifier/init-daemon
+ENV INIT_DAEMON_STEP=spark_master_init
 
 ARG SPARK_VERSION=3.5.3
 ARG SPARK_HADOOP_VERSION=3
 
-ENV SPARK_VERSION ${SPARK_VERSION}
-ENV HADOOP_VERSION ${SPARK_HADOOP_VERSION}
+ENV SPARK_VERSION=${SPARK_VERSION}
+ENV HADOOP_VERSION=${SPARK_HADOOP_VERSION}
 
 COPY wait-for-step.sh /
 COPY execute-step.sh /
@@ -52,16 +52,16 @@ RUN chmod +x /wait-for-step.sh && chmod +x /execute-step.sh 
&& chmod +x /finish-
 
 # Fix the value of PYTHONHASHSEED
 # Note: this is needed when you use Python 3.3 or greater
-ENV PYTHONHASHSEED 1
+ENV PYTHONHASHSEED=1
 
-ENV SPARK_HOME /opt/spark
-ENV SPARK_INSTALL ${SPARK_HOME}
-ENV SPARK_CONF_DIR ${SPARK_HOME}/conf
-ENV PATH $SPARK_INSTALL/bin:$PATH
+ENV SPARK_HOME=/opt/spark
+ENV SPARK_INSTALL=${SPARK_HOME}
+ENV SPARK_CONF_DIR=${SPARK_HOME}/conf
+ENV PATH=$SPARK_INSTALL/bin:$PATH
 
-ENV SPARK_DRIVER_PORT 5001
-ENV SPARK_UI_PORT 5002
-ENV SPARK_BLOCKMGR_PORT 5003
+ENV SPARK_DRIVER_PORT=5001
+ENV SPARK_UI_PORT=5002
+ENV SPARK_BLOCKMGR_PORT=5003
 
 EXPOSE $SPARK_DRIVER_PORT $SPARK_UI_PORT $SPARK_BLOCKMGR_PORT
 
diff --git a/docker/hoodie/hadoop/sparkadhoc/Dockerfile 
b/docker/hoodie/hadoop/sparkadhoc/Dockerfile
index 70105bf3cf36..7c8e900fca53 100644
--- a/docker/hoodie/hadoop/sparkadhoc/Dockerfile
+++ b/docker/hoodie/hadoop/sparkadhoc/Dockerfile
@@ -24,11 +24,11 @@ ARG PRESTO_VERSION=0.268
 ARG TRINO_VERSION=368
 COPY adhoc.sh /opt/spark
 
-ENV SPARK_WORKER_WEBUI_PORT 8081
-ENV SPARK_WORKER_LOG /spark/logs
-ENV SPARK_MASTER "spark://spark-master:7077"
-ENV PRESTO_VERSION ${PRESTO_VERSION}
-ENV TRINO_VERSION ${TRINO_VERSION}
+ENV SPARK_WORKER_WEBUI_PORT=8081
+ENV SPARK_WORKER_LOG=/spark/logs
+ENV SPARK_MASTER="spark://spark-master:7077"
+ENV PRESTO_VERSION=${PRESTO_VERSION}
+ENV TRINO_VERSION=${TRINO_VERSION}
 ENV BASE_URL=https://repo1.maven.org/maven2
 
 ENV 
SPARK_BUNDLE_JAR=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-spark-bundle.jar
diff --git a/docker/hoodie/hadoop/sparkmaster/Dockerfile 
b/docker/hoodie/hadoop/sparkmaster/Dockerfile
index 94898dcdcfb0..9acaf027606d 100644
--- a/docker/hoodie/hadoop/sparkmaster/Dockerfile
+++ b/docker/hoodie/hadoop/sparkmaster/Dockerfile
@@ -22,9 +22,9 @@ FROM 
apachehudi/hudi-hadoop_${HADOOP_VERSION}-hive_${HIVE_VERSION}-sparkbase_${S
 
 COPY master.sh /opt/spark
 
-ENV SPARK_MASTER_PORT 7077
-ENV SPARK_MASTER_WEBUI_PORT 8080
-ENV SPARK_MASTER_LOG /opt/spark/logs
+ENV SPARK_MASTER_PORT=7077
+ENV SPARK_MASTER_WEBUI_PORT=8080
+ENV SPARK_MASTER_LOG=/opt/spark/logs
 
 EXPOSE 8080 7077 6066
 
diff --git a/docker/hoodie/hadoop/sparkworker/Dockerfile 
b/docker/hoodie/hadoop/sparkworker/Dockerfile
index c8515c735b4c..5b03834067ec 100644
--- a/docker/hoodie/hadoop/sparkworker/Dockerfile
+++ b/docker/hoodie/hadoop/sparkworker/Dockerfile
@@ -22,9 +22,9 @@ FROM 
apachehudi/hudi-hadoop_${HADOOP_VERSION}-hive_${HIVE_VERSION}-sparkbase_${S
 
 COPY worker.sh /opt/spark
 
-ENV SPARK_WORKER_WEBUI_PORT 8081
-ENV SPARK_WORKER_LOG /spark/logs
-ENV SPARK_MASTER "spark://spark-master:7077"
+ENV SPARK_WORKER_WEBUI_PORT=8081
+ENV SPARK_WORKER_LOG=/spark/logs
+ENV SPARK_MASTER="spark://spark-master:7077"
 
 EXPOSE 8081
 
diff --git a/docker/hoodie/hadoop/trinobase/Dockerfile 
b/docker/hoodie/hadoop/trinobase/Dockerfile
index 0700fa2f6bfb..a6f7701a4ef4 100644
--- a/docker/hoodie/hadoop/trinobase/Dockerfile
+++ b/docker/hoodie/hadoop/trinobase/Dockerfile
@@ -41,8 +41,8 @@ RUN apt-get install -y \
     uuid-runtime \
     less
 
-ENV JAVA_HOME /usr/java/default
-ENV PATH $PATH:$JAVA_HOME/bin
+ENV JAVA_HOME=/usr/java/default
+ENV PATH=$PATH:$JAVA_HOME/bin
 
 WORKDIR /usr/local/bin
 RUN wget -q 
${BASE_URL}/io/trino/trino-cli/${TRINO_VERSION}/trino-cli-${TRINO_VERSION}-executable.jar
@@ -54,10 +54,10 @@ RUN wget -q 
${BASE_URL}/io/trino/trino-server/${TRINO_VERSION}/trino-server-${TR
 RUN tar xvzf trino-server-${TRINO_VERSION}.tar.gz -C /usr/local/
 RUN ln -s /usr/local/trino-server-${TRINO_VERSION} $TRINO_HOME
 
-ENV TRINO_BASE_WS /var/hoodie/ws/docker/hoodie/hadoop/trinobase
+ENV TRINO_BASE_WS=/var/hoodie/ws/docker/hoodie/hadoop/trinobase
 RUN mkdir -p ${TRINO_BASE_WS}/target/
 ADD target/ ${TRINO_BASE_WS}/target/
-ENV HUDI_TRINO_BUNDLE ${TRINO_BASE_WS}/target/hudi-trino-bundle.jar
+ENV HUDI_TRINO_BUNDLE=${TRINO_BASE_WS}/target/hudi-trino-bundle.jar
 RUN cp ${HUDI_TRINO_BUNDLE} ${TRINO_HOME}/plugin/hive/
 
 ADD scripts ${TRINO_HOME}/scripts

Reply via email to