#
#********************************************************************
#Author:           YiLing Wu (hj)
#email:            huangjing510@126.com
#Date:             2024-12-23
#FileName:         Dockerfile_hadoop
#URL:              http://huangjingblog.cn:510/
#Description:      以提前构建的 sshjdk:guet 镜像为基础，通过多阶段构建方式构建 Hadoop 环境，后需手动初始化并配置集群信息
#Copyright (C):    2024 All rights reserved
#********************************************************************
#
# 第一阶段：构建阶段
FROM sshjdk:guet AS build

# 下载并解压 Hadoop
ADD http://10.33.210.121/bigdata/hadoop-3.1.3.tar.gz /tmp/
RUN mkdir -p /opt/software /opt/module && \
    tar -zxf /tmp/hadoop-3.1.3.tar.gz -C /opt/software && \
    rm -rf /tmp/hadoop-3.1.3.tar.gz && \
    ln -s /opt/software/hadoop-3.1.3 /opt/module/hadoop

# 第二阶段：最终镜像
FROM sshjdk:guet

# 复制 Hadoop 安装内容和配置文件
COPY --from=build /opt/module/hadoop /opt/module/hadoop 
COPY ./hadoop_conf/ /opt/module/hadoop/etc/hadoop

# 设置环境变量并写入到 /etc/profile.d/bigdata.sh 文件中
RUN echo "#HADOOP_HOME" >> /etc/profile.d/bigdata.sh && \
    echo "export HADOOP_HOME=/opt/module/hadoop" >> /etc/profile.d/bigdata.sh && \
    echo "export PATH=\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin:\$PATH" >> /etc/profile.d/bigdata.sh && \
    echo "export HADOOP_CLASSPATH=\`\$HADOOP_HOME/bin/hadoop classpath\`" >> /etc/profile.d/bigdata.sh 

# 设置工作目录为 Hadoop 配置目录
WORKDIR /opt/module/hadoop/etc/hadoop

CMD ["tail", "-f", "/dev/null"]
