diff --git a/base/Dockerfile b/base/Dockerfile index dec673e..c4263ae 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,47 +1,55 @@ -FROM debian:9 +# Base image: Debian-12 +FROM debian:12 -MAINTAINER Ivan Ermilov -MAINTAINER Giannis Mouchakis - -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - openjdk-8-jdk \ - net-tools \ - curl \ - netcat \ - gnupg \ - libsnappy-dev \ - && rm -rf /var/lib/apt/lists/* +# Update local package index, upgrade packages and install required packages. +RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + openjdk-8-jdk \ + net-tools \ + curl \ + netcat \ + gnupg \ + libsnappy-dev \ + && rm -rf /var/lib/apt/lists/* +# Set Java env ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ +# Download Hadoop Keys RUN curl -O https://dist.apache.org/repos/dist/release/hadoop/common/KEYS +# Import keys RUN gpg --import KEYS -ENV HADOOP_VERSION 3.2.1 +# Set hadoop version & URL +ENV HADOOP_VERSION 3.3.6 ENV HADOOP_URL https://www.apache.org/dist/hadoop/common/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz +# Download hadoop and signature, verify with gpg, extract hadoop-ver.tar.hz into /opt and remove hadoop-ver.tar.gz RUN set -x \ - && curl -fSL "$HADOOP_URL" -o /tmp/hadoop.tar.gz \ - && curl -fSL "$HADOOP_URL.asc" -o /tmp/hadoop.tar.gz.asc \ - && gpg --verify /tmp/hadoop.tar.gz.asc \ - && tar -xvf /tmp/hadoop.tar.gz -C /opt/ \ - && rm /tmp/hadoop.tar.gz* + && curl -fSL "$HADOOP_URL" -o /tmp/hadoop.tar.gz \ + && curl -fSL "$HADOOP_URL.asc" -o /tmp/hadoop.tar.gz.asc \ + && gpg --verify /tmp/hadoop.tar.gz.asc \ + && tar -xvf /tmp/hadoop.tar.gz -C /opt/ \ + && rm /tmp/hadoop.tar.gz* +# Establish symobolic link in /etc/hadoop for /opt/hadoop-$HADOOP_VERSION/etc/hadoop RUN ln -s /opt/hadoop-$HADOOP_VERSION/etc/hadoop /etc/hadoop -RUN mkdir /opt/hadoop-$HADOOP_VERSION/logs - -RUN mkdir /hadoop-data +# Make logs dir and data dir +RUN mkdir /opt/hadoop-$HADOOP_VERSION/logs /hadoop-data +# Set env ENV HADOOP_HOME=/opt/hadoop-$HADOOP_VERSION ENV HADOOP_CONF_DIR=/etc/hadoop ENV MULTIHOMED_NETWORK=1 ENV USER=root ENV PATH $HADOOP_HOME/bin/:$PATH +# Copy entrypoint.sh to container ADD entrypoint.sh /entrypoint.sh +# Make entrypoint.sh executable RUN chmod a+x /entrypoint.sh +# Specify entrypoint ENTRYPOINT ["/entrypoint.sh"]