summaryrefslogtreecommitdiffstats
path: root/clover/spark/docker/clover-spark/Dockerfile
blob: d63c30a02a30cce37c2dac25c94b16fe486eace2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

FROM openjdk:8-alpine

ARG spark_jars=jars
ARG img_path=kubernetes/dockerfiles

# Before building the docker image, first build and make a Spark distribution following
# the instructions in http://spark.apache.org/docs/latest/building-spark.html.
# If this docker file is being used in the context of building your images from a Spark
# distribution, the docker build command should be invoked from the top level directory
# of the Spark distribution. E.g.:
# docker build -t spark:latest -f kubernetes/dockerfiles/spark/Dockerfile .

RUN set -ex && \
    apk upgrade --no-cache && \
    apk add --no-cache bash tini libc6-compat && \
    mkdir -p /opt/spark && \
    mkdir -p /opt/spark/work-dir \
    touch /opt/spark/RELEASE && \
    rm /bin/sh && \
    ln -sv /bin/bash /bin/sh && \
    chgrp root /etc/passwd && chmod ug+rw /etc/passwd

RUN mkdir /spark
WORKDIR /spark
RUN wget https://archive.apache.org/dist/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
RUN tar -xvzf spark-2.3.2-bin-hadoop2.7.tgz
WORKDIR /spark/spark-2.3.2-bin-hadoop2.7

RUN cp -R ${spark_jars} /opt/spark/jars
COPY jars/clover-spark_2.11-1.0.jar /opt/spark/jars
COPY jars/datastax_spark-cassandra-connector-2.3.0-s_2.11.jar /opt/spark/jars
COPY jars/redisclient_2.11-3.7.jar /opt/spark/jars
RUN cp -R bin /opt/spark/bin
RUN cp -R sbin /opt/spark/sbin
RUN cp -R conf /opt/spark/conf
RUN cp -R ${img_path}/spark/entrypoint.sh /opt/


ENV SPARK_HOME /opt/spark

WORKDIR /opt/spark/work-dir
RUN rm -rf /spark

ENTRYPOINT [ "/opt/entrypoint.sh" ]