Skip to content

fix: move base images to distroless cc-debian13 - #59

Open
ravisingal wants to merge 1 commit into
mainfrom
fix/cc-debian13-base
Open

ravisingal wants to merge 1 commit into
mainfrom
fix/cc-debian13-base

Conversation

@ravisingal

Copy link
Copy Markdown
Contributor

Why

Debian 12 (bookworm) is approaching the end of its full-support window. This moves the runtime base for both Java images to gcr.io/distroless/cc-debian13.

Changes

  • java-11/base.image, java-21/base.image — point at gcr.io/distroless/cc-debian13:debug at the current digest.
  • update-docker-args.yml — the weekly digest-bump workflow now tracks cc-debian13, so it won't revert the migration.
  • jre and builder stages → debian:trixie-slim, so the JRE and jemalloc are built against the same glibc (2.41) as the runtime base.
  • ssl stage → gcr.io/distroless/java-base-debian13:debug, so the Java cacerts come from a matching release.
  • zlib handling — cc-debian13 already ships libz.so.1 -> libz.so.1.3.1, unlike cc-debian12. Copying libz in from the build stage is no longer needed (and would now fail: the old ln -s collides with the base's own symlink). It's replaced by an assertion that the base still provides the library, left unversioned so a routine zlib patch bump doesn't break the weekly digest PR.
  • java-11/Dockerfile — As builder → AS builder, clearing the FromAsCasing build warning.

Testing

Both images built locally on amd64 and arm64:

Check java-11 java-21
Build pass pass
java -version Zulu 11.0.33 Zulu 21.0.13
jemalloc LD_PRELOAD resolves resolves
/etc/ssl/certs/java/cacerts present present
eMudhra entry in blocked.certs present present

The zlib assertion was also checked against a deliberately bad path to confirm it fails the build rather than passing silently.

Remaining build warnings are pre-existing InvalidDefaultArgInFrom notices for ARG BASE_IMAGE, which both CI workflows always supply.

🤖 Generated with Claude Code

Debian 12 (bookworm) is approaching the end of its full-support window, so
move the runtime base for both Java images to gcr.io/distroless/cc-debian13.

The helper stages move to trixie alongside it so the JRE and jemalloc are
built against the same glibc (2.41) as the runtime base, and the SSL stage
moves to java-base-debian13 so the Java cacerts come from a matching release.

cc-debian13 already ships zlib (libz.so.1 -> libz.so.1.3.1), unlike
cc-debian12, so copying libz in from the build stage is no longer needed.
Replace it with an assertion that the base still provides the library, left
unversioned so a routine zlib patch bump does not break the weekly
update-docker-args PR.

Verified by building both images on amd64 and arm64: java 11.0.33 and
21.0.13 start, jemalloc preloads, cacerts are present, and the eMudhra
blocked.certs entry survives jlink.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ravisingal

Copy link
Copy Markdown
Contributor Author

Root CA certificate emSign ECC Root CA - G3 is removed from the base image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants