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
