From 305aac8866d870fd901d50dba900405b42c2dd69 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Fri, 5 Jan 2018 10:37:15 -0800 Subject: [PATCH] Added docker build arguments --- .../docker/SparkDockerImageBuilder.scala | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/integration-test/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/docker/SparkDockerImageBuilder.scala b/integration-test/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/docker/SparkDockerImageBuilder.scala index b3a359f..b03938c 100644 --- a/integration-test/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/docker/SparkDockerImageBuilder.scala +++ b/integration-test/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/docker/SparkDockerImageBuilder.scala @@ -17,9 +17,10 @@ package org.apache.spark.deploy.k8s.integrationtest.docker import java.net.URI +import java.net.URLEncoder import java.nio.file.Paths -import com.spotify.docker.client.{DefaultDockerClient, DockerCertificates, LoggingBuildHandler} +import com.spotify.docker.client.{DockerClient, DefaultDockerClient, DockerCertificates, LoggingBuildHandler} import org.apache.http.client.utils.URIBuilder import org.scalatest.concurrent.{Eventually, PatienceConfiguration} import org.scalatest.time.{Minutes, Seconds, Span} @@ -61,17 +62,31 @@ private[spark] class SparkDockerImageBuilder def buildSparkDockerImages(): Unit = { Eventually.eventually(TIMEOUT, INTERVAL) { dockerClient.ping() } - buildImage("spark-base", BASE_DOCKER_FILE) + buildImage("spark-base", BASE_DOCKER_FILE, + Some("{\"spark_jars\":\"jars\",\"img_path\":\"kubernetes/dockerfiles\"}")) buildImage("spark-driver", DRIVER_DOCKER_FILE) buildImage("spark-executor", EXECUTOR_DOCKER_FILE) } - private def buildImage(name: String, dockerFile: String): Unit = { - dockerClient.build( - DOCKER_BUILD_PATH, - name, - dockerFile, - new LoggingBuildHandler()) + private def buildImage( + name: String, + dockerFile: String, + buildArgs: Option[String] = None): Unit = { + if (buildArgs.nonEmpty) { + dockerClient.build( + DOCKER_BUILD_PATH, + name, + dockerFile, + new LoggingBuildHandler(), + DockerClient.BuildParam.create("buildargs", URLEncoder.encode(buildArgs.get, "UTF-8"))) + } else { + dockerClient.build( + DOCKER_BUILD_PATH, + name, + dockerFile, + new LoggingBuildHandler()) + } + logInfo(s"Built $name docker image") } }