Dockerfile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. FROM maven:3.8.6-openjdk-8 as builder
  2. WORKDIR /workspace
  3. RUN sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list
  4. RUN apt update && apt install -y python3 python3-pip python-is-python3 \
  5. && pip config set global.index-url https://mirror.nju.edu.cn/pypi/web/simple
  6. ADD . .
  7. RUN mkdir -p ~/.m2 && cp -r docker/settings.xml ~/.m2
  8. # RUN wget http://mirror.nju.edu.cn/apache/spark/spark-3.1.3/spark-3.1.3-bin-hadoop3.2.tgz
  9. # ADD spark-3.0.3-bin-hadoop3.2.tgz .
  10. RUN mvn clean package \
  11. -B -V -e \
  12. -Pspark-3.0 \
  13. -Pthriftserver \
  14. -DskipTests \
  15. -DskipITs \
  16. -Dmaven.javadoc.skip=true
  17. FROM openjdk:8-jre-slim as builder1
  18. RUN sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list
  19. # COPY docker/sources.list /etc/apt
  20. RUN apt update && apt install -y --no-install-recommends \
  21. krb5-user zip unzip procps tar curl supervisor
  22. # 目录准备
  23. WORKDIR /opt/cluster
  24. RUN mkdir -p hadoop spark livy/logs
  25. # spark
  26. COPY --from=builder /workspace/spark-3.0.3-bin-hadoop3.2.tgz spark
  27. 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
  28. # hadoop
  29. 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
  30. RUN cd hadoop && tar zxfv hadoop.tgz && mv hadoop*/* . && rm -rf hadoop.tgz
  31. # livy
  32. COPY --from=builder /workspace/assembly/target/apache-livy*.zip livy
  33. RUN cd /opt/cluster/livy/ && unzip apache-livy*.zip && mv apache-livy*bin/* .
  34. # jar包冲突
  35. RUN cp hadoop/share/hadoop/common/lib/jersey-core-1.19.jar livy/jars/
  36. RUN cp hadoop/share/hadoop/common/lib/jersey-core-1.19.jar spark/jars/
  37. RUN cp hadoop/share/hadoop/yarn/lib/jersey-client-1.19.jar spark/jars/
  38. RUN rm spark/jars/jersey-client-2.30.jar
  39. # 环境变量
  40. ENV HADOOP_HOME=/opt/cluster/hadoop
  41. ENV HADOOP_CONF_DIR=/opt/cluster/conf
  42. ENV HIVE_HOME=/opt/cluster/hive
  43. ENV HIVE_CONF_DIR=/opt/cluster/conf
  44. ENV SPARK_HOME=/opt/cluster/spark
  45. ENV SPARK_CONF_DIR=/opt/cluster/conf
  46. ENV LIVY_HOME=/opt/cluster/livy
  47. ENV LIVY_CONF_DIR=/opt/cluster/conf
  48. # 启动命令
  49. RUN echo "\
  50. [program:livy]\n\
  51. directory=/opt/cluster\n\
  52. command=livy/bin/livy-server \n\
  53. autorestart=true\n\
  54. startretries=0\n\
  55. redirect_stderr=true\n\
  56. stdout_logfile=/var/log/livy.log\n\
  57. stdout_logfile_maxbytes=50MB\n\
  58. " > /etc/supervisor/conf.d/livy.conf
  59. CMD ["supervisord", "-n"]
  60. FROM builder1 as image-test
  61. COPY docker/dev .
  62. ADD docker/dev/conf/krb5.conf /etc
  63. FROM builder1 as image-prod
  64. COPY docker/prod .
  65. ADD docker/prod/conf/krb5.conf /etc