Skip to content

Commit

Permalink
[SPARK-40256][BUILD][K8S] Switch base image from openjdk to eclipse-t…
Browse files Browse the repository at this point in the history
…emurin

### What changes were proposed in this pull request?
This PR switchs the base image from [`openjdk`](https://hub.docker.com/_/openjdk) to [`eclipse-temurin`](https://hub.docker.com/_/eclipse-temurin) (original openjdk).

The core change is: the OS of base image changes `debian-bullseye` to `ubuntu-focal` (based on debian bullseye).

### Why are the changes needed?

- According to docker-library/openjdk#505 and docker-library/docs#2162, openjdk:8/11 image is EOL and Eclipse Temurin replaces this, the original openjdk image will `remove the 11 and 8 tags (in October 2022, perhaps)` (we are using it in spark), so we have to switch this before it happens.

- The `openjdk` is [not update anymore](https://adoptopenjdk.net/upstream.html) (the last releases were 8u342 and 11.0.16, Eclipse Temurin replace is recommanded by adoptopenjdk) that means even the 8/11 tag is not removed, we still need to switch `openjdk`.

- There were [many docker official image](https://github.com/search?q=org%3Adocker-library+temurin&type=code) already switch openjdk to eclipse-temurin.

- According the [jvm ecosystem report](https://snyk.io/jvm-ecosystem-report-2021) from docker-library/docs#2162 , AdoptOpenJDK(now donation to eclipse foundation and rename to eclipse temurin) builds of OpenJDK most popular in production.

- An ideal long-term solution is that we only choose the jdk version and leave the adaptation of OS to the corresponding openjdk official image (just like eclipse-temurin are suppoort [ubuntu, alpine, centos](https://github.com/adoptium/containers/tree/main/11/jre))

- The alternate solution is we just swith `openjdk` image to `debian-bullseye` with openjdk 11 installation. like: Yikun#163. But it makes spark image **depends on debian OS more**, that means we will diffcult to support the Java version which debian OS doesn't support (such as openjdk-8-jre is not be supported in current debian anymore).

For the above reason, I think `eclipse-temurin` is a good choice.

### Does this PR introduce _any_ user-facing change?

Yes, the docker images base image changes.

### How was this patch tested?
CI passed, I also have a local test on: Yikun#162

Closes apache#37705 from Yikun/switch-temurin.

Authored-by: Yikun Jiang <[email protected]>
Signed-off-by: Gengliang Wang <[email protected]>
  • Loading branch information
Yikun authored and gengliangwang committed Aug 30, 2022
1 parent 296fe49 commit c2d4c4e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 6 deletions.
4 changes: 2 additions & 2 deletions bin/docker-image-tool.sh
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,11 @@ Examples:
$0 -r docker.io/myrepo -t v2.3.0 push
- Build and push Java11-based image with tag "v3.0.0" to docker.io/myrepo
$0 -r docker.io/myrepo -t v3.0.0 -b java_image_tag=11-jre-slim build
$0 -r docker.io/myrepo -t v3.0.0 -b java_image_tag=11-jre-focal build
$0 -r docker.io/myrepo -t v3.0.0 push
- Build and push Java11-based image for multiple archs to docker.io/myrepo
$0 -r docker.io/myrepo -t v3.0.0 -X -b java_image_tag=11-jre-slim build
$0 -r docker.io/myrepo -t v3.0.0 -X -b java_image_tag=11-jre-focal build
# Note: buildx, which does cross building, needs to do the push during build
# So there is no separate push step with -X
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
ARG java_image_tag=11-jre-slim
ARG java_image_tag=11-jre-focal

FROM openjdk:${java_image_tag}
FROM eclipse-temurin:${java_image_tag}

ARG spark_uid=185

Expand All @@ -28,7 +28,6 @@ ARG spark_uid=185
# docker build -t spark:latest -f kubernetes/dockerfiles/spark/Dockerfile .

RUN set -ex && \
sed -i 's/http:\/\/deb.\(.*\)/https:\/\/deb.\1/g' /etc/apt/sources.list && \
apt-get update && \
ln -s /lib /lib64 && \
apt install -y bash tini libc6 libpam-modules krb5-user libnss3 procps net-tools && \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ then
cd $SPARK_INPUT_DIR

if [[ $DOCKER_FILE == "N/A" ]]; then
# OpenJDK base-image tag (e.g. 8-jre-slim, 11-jre-slim)
# OpenJDK base-image tag (e.g. 8-jre-focal, 11-jre-focal)
JAVA_IMAGE_TAG_BUILD_ARG="-b java_image_tag=$JAVA_IMAGE_TAG"
else
if [[ $DOCKER_FILE = /* ]]; then
Expand Down

0 comments on commit c2d4c4e

Please sign in to comment.