FROM openjdk:8-slim ARG HMS_VERSION=3.0.0 ARG HADOOP_VERSION=3.3.2 ARG MYSQL_CONNECTOR_VERSION=8.0.28 SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN apt-get update && apt-get install -y curl unzip procps --no-install-recommends && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install Gomplate RUN curl -sfSL https://github.com/hairyhenderson/gomplate/releases/download/v3.6.0/gomplate_linux-amd64 \ -o /usr/local/bin/gomplate \ && chmod 755 /usr/local/bin/gomplate # Set Hadoop/HiveMetastore Classpath ENV HADOOP_HOME="/opt/hadoop" ENV METASTORE_HOME="/opt/hive-metastore" ENV HADOOP_CLASSPATH="${HADOOP_HOME}/share/hadoop/tools/lib/*:${HADOOP_HOME}/share/hadoop/common/lib/*" ENV PATH="${HADOOP_HOME}/bin:${METASTORE_HOME}/lib/mysql-connector-java.jar:${PATH}" # Download Hadoop RUN curl -s https://archive.apache.org/dist/hadoop/core/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz \ | tar xz -C /opt/ \ && ln -s ${HADOOP_HOME}-$HADOOP_VERSION ${HADOOP_HOME} \ && rm -r ${HADOOP_HOME}/share/doc WORKDIR ${HADOOP_HOME}/share/hadoop # Add additional jars to the Hadoop classpath RUN curl -s -o tools/lib/log4j-1.2-api-2.17.2.jar https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-1.2-api/2.17.2/log4j-1.2-api-2.17.2.jar && \ curl -s -o tools/lib/log4j-api-2.17.2.jar https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.17.2/log4j-api-2.17.2.jar && \ curl -s -o tools/lib/log4j-core-2.17.2.jar https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.17.2/log4j-core-2.17.2.jar && \ curl -s -o tools/lib/log4j-slf4j18-impl-2.17.2.jar https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.2/log4j-slf4j18-impl-2.17.2.jar && \ curl -s -o tools/lib/mysql-connector-java.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_CONNECTOR_VERSION}/mysql-connector-java-${MYSQL_CONNECTOR_VERSION}.jar && \ ln -s tools/lib/mysql-connector-java* common/lib/ && \ chmod 0644 tools/lib/* # Download the standalone hive metastore RUN curl -s https://repo1.maven.org/maven2/org/apache/hive/hive-standalone-metastore/${HMS_VERSION}/hive-standalone-metastore-${HMS_VERSION}-bin.tar.gz \ | tar xz -C /opt/ \ && ln -s /opt/apache-hive-metastore-${HMS_VERSION}-bin ${METASTORE_HOME} # Add additional jars to the HMS classpath & mitigate log4j issues from CVE-2021-44228 WORKDIR ${METASTORE_HOME} RUN rm lib/log4j-* && \ ln -s ${HADOOP_HOME}/share/hadoop/tools/lib/log4j-* lib/ && \ ln -s ${HADOOP_HOME}/share/hadoop/tools/lib/mysql-connector-java* lib/ && \ chmod 0644 lib/* COPY conf/metastore-log4j2.properties conf COPY entrypoint.sh bin/ RUN chmod +x bin/entrypoint.sh EXPOSE 9083 ENTRYPOINT ["bin/entrypoint.sh"]