Dockerfile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. FROM openjdk:8-jre-slim as builder1
  2. RUN sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list
  3. # COPY docker/sources.list /etc/apt
  4. RUN apt update && apt install -y --no-install-recommends \
  5. krb5-user zip unzip procps tar curl supervisor
  6. # 目录准备
  7. WORKDIR /opt/cluster
  8. RUN mkdir -p hadoop spark livy/logs
  9. # spark
  10. COPY spark-3.0.3-bin-hadoop3.2.tgz spark
  11. RUN cd spark && tar zxfv spark-3.0.3-bin-hadoop3.2.tgz && mv spark*/* . && rm -rf spark-3.0.3-bin-hadoop3.2.tgz
  12. # hadoop
  13. COPY hadoop-3.2.3.tar.gz hadoop/hadoop.tgz
  14. # RUN curl -o ./hadoop/hadoop.tgz -O http://mirror.nju.edu.cn/apache/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz
  15. RUN cd hadoop && tar zxfv hadoop.tgz && mv hadoop*/* . && rm -rf hadoop.tgz
  16. # livy
  17. COPY apache-livy-0.8.0-incubating-SNAPSHOT-bin.zip livy
  18. RUN cd livy && unzip apache-livy*.zip && mv apache-livy*bin/* .
  19. # jar包冲突
  20. RUN cp hadoop/share/hadoop/common/lib/jersey-core-1.19.jar livy/jars/
  21. RUN cp hadoop/share/hadoop/common/lib/jersey-core-1.19.jar spark/jars/
  22. RUN cp hadoop/share/hadoop/yarn/lib/jersey-client-1.19.jar spark/jars/
  23. RUN rm spark/jars/jersey-client-2.30.jar
  24. # 环境变量
  25. ENV HADOOP_HOME=/opt/cluster/hadoop
  26. ENV HADOOP_CONF_DIR=/opt/cluster/conf
  27. ENV HIVE_HOME=/opt/cluster/hive
  28. ENV HIVE_CONF_DIR=/opt/cluster/conf
  29. ENV SPARK_HOME=/opt/cluster/spark
  30. ENV SPARK_CONF_DIR=/opt/cluster/conf
  31. ENV LIVY_HOME=/opt/cluster/livy
  32. ENV LIVY_CONF_DIR=/opt/cluster/conf
  33. # 启动命令
  34. RUN echo "\
  35. [program:livy]\n\
  36. directory=/opt/cluster\n\
  37. command=livy/bin/livy-server \n\
  38. autorestart=true\n\
  39. startretries=0\n\
  40. redirect_stderr=true\n\
  41. stdout_logfile=/var/log/livy.log\n\
  42. stdout_logfile_maxbytes=50MB\n\
  43. " > /etc/supervisor/conf.d/livy.conf
  44. CMD ["supervisord", "-n"]
  45. FROM builder1 as image-test
  46. COPY docker/dev .
  47. ADD docker/dev/conf/krb5.conf /etc
  48. FROM builder1 as image-prod
  49. COPY docker/prod .
  50. ADD docker/prod/conf/krb5.conf /etc