Spark-2.4.0 docker build 失败
Posted
技术标签:
【中文标题】Spark-2.4.0 docker build 失败【英文标题】:Spark-2.4.0 docker build fails 【发布时间】:2019-01-30 18:31:39 【问题描述】:我正在尝试构建一个基于 alpine linux 的 spark 容器(使用发行版中提供的 Dockerfile)。
docker build -t spark:latest -f kubernetes/dockerfiles/spark/Dockerfile .
我看到以下错误。我该如何解决这些问题?
Sending build context to Docker daemon 256.2MB
Step 1/15 : FROM openjdk:8-alpine
---> 2cfb1dc1f0c8
Step 2/15 : ARG spark_jars=jars
---> Using cache
---> 3929d9e6b4a3
Step 3/15 : ARG img_path=kubernetes/dockerfiles
---> Using cache
---> 74e046503051
Step 4/15 : ARG k8s_tests=kubernetes/tests
---> Using cache
---> b935956a4bd1
Step 5/15 : RUN set -ex && apk upgrade --no-cache && apk add --no-cache bash tini libc6-compat linux-pam && mkdir -p /opt/spark && mkdir -p /opt/spark/work-dir && touch /opt/spark/RELEASE && rm /bin/sh && ln -sv /bin/bash /bin/sh && echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && chgrp root /etc/passwd && chmod ug+rw /etc/passwd
---> Running in 04372cfa8170
+ apk upgrade --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
OK: 101 MiB in 53 packages
+ apk add --no-cache bash tini libc6-compat linux-pam
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
ERROR: unsatisfiable constraints:
bash (missing):
required by: world[bash]
libc6-compat (missing):
required by: world[libc6-compat]
linux-pam (missing):
required by: world[linux-pam]
tini (missing):
required by: world[tini]
The command '/bin/sh -c set -ex && apk upgrade --no-cache && apk add --no-cache bash tini libc6-compat linux-pam && mkdir -p /opt/spark && mkdir -p /opt/spark/work-dir && touch /opt/spark/RELEASE && rm /bin/sh && ln -sv /bin/bash /bin/sh && echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && chgrp root /etc/passwd && chmod ug+rw /etc/passwd' returned a non-zero code: 4
【问题讨论】:
您似乎缺少一些库。尝试安装libc6-compat、linux-pam、tini @shtolik,你的意思是做一个 rpm 安装(或那些行中的东西?) 是的,rpm/apt 或 linux 上的任何一个 对我来说,您似乎必须先为 alpine 设置网络连接?因为它找不到存储库,而且我不熟悉 alpine,但我知道它非常基础。 我可以看看你的 Dockerfile 吗? 【参考方案1】:如果您首先将您喜欢的 Linux(在您的情况下为 Alpine)作为普通容器运行,然后执行它,那对您会更好。
然后尝试在容器中一一运行您的构建命令,如果成功,则将其添加到您的 Dockerfile 中。
正如@wuerzelchen 提到的,不确定 Alpine 作为 Linux 发行版是否适合您。
【讨论】:
以上是关于Spark-2.4.0 docker build 失败的主要内容,如果未能解决你的问题,请参考以下文章
Apache Spark 2.4.0、AWS EMR、Spark Redshift 和 User 类抛出异常:java.lang.AbstractMethodError