# 原来是三步，第一步是在docker容器中编译项目
# 这里省略第一步，编译项目在外部进行
# TODO 考虑是否将docker的构建任务加入gradle管理，因为有了Jenkins，目前暂时不考虑此问题

# 2. 准备 JDK 环境基本镜像
#FROM openjdk:8u181 as parim-spark-jdk
#
#COPY docker/sources.list /etc/apt/
#ENV  TZ=Asia/Shanghai \
#     LC_ALL=en_US.UTF-8 \
#     LANG=en_US.UTF-8 \
#     LANGUAGE=en_US:UTF-8
#
#RUN echo $TZ > /etc/timezone && \
#    apt-get update  && apt-get install -y tzdata locales apt-utils locales-all procps && \
#    rm /etc/localtime && \
#    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
#    localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 && \
#    locale-gen && \
#    dpkg-reconfigure -f noninteractive tzdata locales && \
#    apt-get clean && rm -rf /var/lib/apt/lists/*


# 3. 构建 parim-spark 运行环境
#FROM parim-spark-jdk
FROM docker.parim.net/qimooc/openjdk:8u181

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y \
    sudo vim zip unzip net-tools telnet inetutils-ping locales

# Create user 'parim'
RUN useradd --create-home --no-log-init --shell /bin/bash parim
# RUN useradd --create-home --no-log-init --shell /bin/bash parim \
    # && echo 'parim:manager1' | chpasswd \
    # && adduser parim sudo

# Create data mapping folder and grant to user 'parim'
RUN mkdir -p /data && chown -R parim /data

USER parim
WORKDIR /home/parim

RUN sed -i 's/-alF/-lF/' .bashrc
RUN mkdir -p ~/apps ~/bin

# Copy the web application package to the work directory
# COPY --from=0 /root/parim-spark/build/distributions/parim-spark.zip .
ADD build/distributions/parim-spark.zip .
# Unzip to runtime directory and remove the setup package file.
RUN unzip -o -d ~/apps parim-spark.zip \
    && rm -v parim-spark.zip

# Set required environments
ENV HOME=/home/parim \
    APP_HOME=/home/parim/apps/parim-spark

ENV PATH=$HOME/bin:$HOME/.local/bin:$APP_HOME/bin:$PATH \
    SPRING_BOOT_OPTS=

EXPOSE 8091 8092

VOLUME ["/home/parim/apps/parim-spark", "/data"]

ADD --chown=parim:parim docker/docker-entrypoint.sh /home/parim/bin/
RUN chmod +x /home/parim/bin/docker-entrypoint.sh

RUN chmod +x /home/parim/apps/parim-spark/bin/parim-spark
RUN chmod +x /home/parim/apps/parim-spark/bin/parim-spark.war

ENTRYPOINT ["/bin/bash", "./bin/docker-entrypoint.sh"]
