|
17 | 17 | package org.apache.spark.deploy.k8s.integrationtest.docker
|
18 | 18 |
|
19 | 19 | import java.net.URI
|
| 20 | +import java.net.URLEncoder |
20 | 21 | import java.nio.file.Paths
|
21 | 22 |
|
22 |
| -import com.spotify.docker.client.{DefaultDockerClient, DockerCertificates, LoggingBuildHandler} |
| 23 | +import com.spotify.docker.client.{DockerClient, DefaultDockerClient, DockerCertificates, LoggingBuildHandler} |
23 | 24 | import org.apache.http.client.utils.URIBuilder
|
24 | 25 | import org.scalatest.concurrent.{Eventually, PatienceConfiguration}
|
25 | 26 | import org.scalatest.time.{Minutes, Seconds, Span}
|
@@ -62,18 +63,32 @@ private[spark] class SparkDockerImageBuilder
|
62 | 63 |
|
63 | 64 | def buildSparkDockerImages(): Unit = {
|
64 | 65 | Eventually.eventually(TIMEOUT, INTERVAL) { dockerClient.ping() }
|
65 |
| - buildImage("spark-base", BASE_DOCKER_FILE) |
| 66 | + buildImage("spark-base", BASE_DOCKER_FILE, |
| 67 | + Some("{\"spark_jars\":\"jars\",\"img_path\":\"kubernetes/dockerfiles\"}")) |
66 | 68 | buildImage("spark-driver", DRIVER_DOCKER_FILE)
|
67 | 69 | buildImage("spark-executor", EXECUTOR_DOCKER_FILE)
|
68 | 70 | buildImage("spark-init", INIT_CONTAINER_DOCKER_FILE)
|
69 | 71 | }
|
70 | 72 |
|
71 |
| - private def buildImage(name: String, dockerFile: String): Unit = { |
72 |
| - dockerClient.build( |
73 |
| - DOCKER_BUILD_PATH, |
74 |
| - name, |
75 |
| - dockerFile, |
76 |
| - new LoggingBuildHandler()) |
| 73 | + private def buildImage( |
| 74 | + name: String, |
| 75 | + dockerFile: String, |
| 76 | + buildArgs: Option[String] = None): Unit = { |
| 77 | + if (buildArgs.nonEmpty) { |
| 78 | + dockerClient.build( |
| 79 | + DOCKER_BUILD_PATH, |
| 80 | + name, |
| 81 | + dockerFile, |
| 82 | + new LoggingBuildHandler(), |
| 83 | + DockerClient.BuildParam.create("buildargs", URLEncoder.encode(buildArgs.get, "UTF-8"))) |
| 84 | + } else { |
| 85 | + dockerClient.build( |
| 86 | + DOCKER_BUILD_PATH, |
| 87 | + name, |
| 88 | + dockerFile, |
| 89 | + new LoggingBuildHandler()) |
| 90 | + } |
| 91 | + |
77 | 92 | logInfo(s"Built $name docker image")
|
78 | 93 | }
|
79 | 94 | }
|
0 commit comments