Dockerfile для проекта Spark Scala

116
15

Я хочу докровать мое приложение, которое написано в Scala с помощью Spark framework. Вот мой sbt файл:

name := "Benchmarking"

version := "0.1"

scalaVersion := "2.11.4"

resolvers += "Spark Packages Repo" at "http://dl.bintray.com/spark-packages/maven"
libraryDependencies ++= Seq(
"neo4j-contrib" % "neo4j-spark-connector" % "2.1.0-M4",
"org.apache.spark" %% "spark-core" % "2.2.1",
"org.apache.spark" %% "spark-sql" % "2.2.1",
"com.typesafe" % "config" % "1.3.0",
"org.neo4j.driver" % "neo4j-java-driver" % "1.5.1",
"com.opencsv" % "opencsv" % "4.1",
"com.databricks" %% "spark-csv" % "1.5.0"
)

Я запускаю свое приложение с помощью этого скрипта:

#!/usr/bin/env bash
for run in {1..10}
do
sbt "run $1"
done

Поэтому мне было интересно, как я могу добавить все зависимости и точку входа в свой DockerFile?

Пока, мой DockerFile выглядит так:

FROM java:8

ENV SCALA_VERSION 2.11.4
ENV SBT_VERSION 0.1
ENV SPARK_VERSION 2.2.1
ENV SPARK_DIST spark-$SPARK_VERSION-bin-hadoop2.2.1
ENV SPARK_ARCH $SPARK_DIST.tgz
ARG NEO4J_CONFIG

WORKDIR /opt

# Install Scala
RUN \
cd /root && \
curl -o scala-$SCALA_VERSION.tgz http://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \
tar -xf scala-$SCALA_VERSION.tgz && \
rm scala-$SCALA_VERSION.tgz && \
echo >> /root/.bashrc && \
echo 'export PATH=~/scala-$SCALA_VERSION/bin:$PATH' >> /root/.bashrc

# Install SBT
RUN \
curl -L -o sbt-$SBT_VERSION.deb https://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb && \
dpkg -i sbt-$SBT_VERSION.deb && \
rm sbt-$SBT_VERSION.deb

# Install Spark
RUN \
cd /opt && \
curl -o $SPARK_ARCH http://d3kbcqa49mib13.cloudfront.net/$SPARK_ARCH && \
tar xvfz $SPARK_ARCH && \
rm $SPARK_ARCH && \
echo 'export PATH=$SPARK_DIST/bin:$PATH' >> /root/.bashrc

EXPOSE 9851 9852 4040 7474 7687 7473

ENTRYPOINT ./runapp.sh $NEO4J_CONFIG

Кроме того, позже я хочу добавить этот образ приложения в состав docker-compose вместе с изображением neo4j.

спросил(а) 2018-04-10T11:20:00+03:00 2 года, 6 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема