使用Spark源随附的Dockerfile为Spark构建Kubernetes Docker容器时出现的问题

时间:2019-07-11 14:28:59

标签: apache-spark dockerfile

我正在尝试使用Spark源代码中提供的说明为Spark构建Kubernetes容器。我正在使用此处提供的Docker文件:https://github.com/apache/spark/blob/branch-2.4/resource-managers/kubernetes/docker/src/main/dockerfiles/spark/Dockerfile

但是,指定的Dockerfile路径与Spark源代码的文件夹结构不匹配。例如,

  1. 源代码中没有“ jar”目录。但是docker文件会执行'COPY jars / opt / spark / jars'
  2. entrypoint.sh位于'resource-managers / kubernetes / docker / src / main / dockerfiles / spark / entrypoint.sh'中,但是Docker文件尝试从 “ COPY $ {img_path} /spark/entrypoint.sh / opt /”,其中“ ARG img_path = kubernetes / dockerfiles”
  3. 类似地,“ COPY $ {k8s_tests} / opt / spark / tests”似乎也有错误的源目录。

我想念什么?

1 个答案:

答案 0 :(得分:0)

回答“我想念什么?”的问题。可能是他们没有使用该目录中的普通docker build -t <tag> .。取而代之的是,它们在https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh处有一个构建脚本,除其他外,该脚本检查是否首先按https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh#L155-L157

来构建jar。

除此之外,它实际上创建了一个文件夹结构,并在https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh#L89-L127处复制了脚本和相关文件,这就是为什么您还会看到缺少entrypoint.sh和其他参数的失败的原因。

编辑:

我以前添加了有关使用@cookiemonster提及的官方图像的内容,但是后来我发现它实际上并不是官方图像。我找不到Apache发布的任何官方图片,因此删除了该评论。您绝对可以使用其他人构建的图像。但是您可以做出决定,因为我不想推荐任何上游无法支持的随机图像。