Skip to content

Conversation

@saulodias
Copy link

@saulodias saulodias commented Nov 22, 2025

Replace deprecated openjdk image with modern eclipse-temurin. Add bash and fix entrypoint script to resolve container startup issues.

Description

Enter a meaningful description here of the changes, including any relevant links

Checklist

  • Documentation Updated
  • sbt scalafmtAll Run (and optionally sbt scalafmtSbt)
  • At least one approval from a codeowner

Summary by CodeRabbit

  • Chores
    • Updated Java runtime from version 11 to version 21.
    • Upgraded container base image to Alpine for improved efficiency and reduced size.
    • Enhanced container startup script handling for improved reliability.

✏️ Tip: You can customize this high-level summary in your review settings.

Replace deprecated openjdk image with modern eclipse-temurin.
Add bash and fix entrypoint script to resolve container startup issues.
@coderabbitai
Copy link

coderabbitai bot commented Nov 22, 2025

Walkthrough

The Dockerfile base image is upgraded from OpenJDK 11 to Eclipse Temurin 21 on Alpine Linux. Bash installation is added via apk, and the entrypoint handling is refactored to explicitly invoke the entrypoint script via bash instead of direct execution, with improved CRLF handling.

Changes

Cohort / File(s) Summary
Docker Configuration
docker/Dockerfile
Base image upgraded from openjdk:11-jre-slim to eclipse-temurin:21-alpine; bash added via apk add --no-cache bash; entrypoint.sh copy added without chmod in COPY instruction; direct entrypoint execution removed; ENTRYPOINT now explicitly calls /bin/bash /app/entrypoint.sh with CRLF line-ending handling

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Java version upgrade: Verify application compatibility with Java 21 and Temurin distribution, checking for deprecated APIs or behavioral changes
  • Alpine Linux migration: Confirm all runtime dependencies are available in Alpine's package ecosystem; test that the smaller base image doesn't break functionality
  • Entrypoint refactoring: Validate that explicit bash invocation doesn't alter script execution behavior; ensure CRLF handling correctly removes line-ending artifacts from the copied script
  • Removed chmod operations: Verify that removing chmod a+rx on the application binaries doesn't affect executable permissions or runtime behavior

Poem

🐰 From Java's old eleven, to Temurin's peak,
Alpine mountains rise where slim images shrink,
Bash whispers the entry with gentle reform,
No more direct scripts—we invoke them in form! ✨
CRLF defeated, the path is reborn.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change: updating the Docker base image from openjdk:11-jre-slim to eclipse-temurin:21-alpine, which is the primary modification evident in the changeset.
Description check ✅ Passed The description provides context for the changes (deprecated image replacement, bash addition, entrypoint fixes) but the template section is incomplete with placeholder text.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bce86ec and 0fa2dd6.

📒 Files selected for processing (1)
  • docker/Dockerfile (1 hunks)
🔇 Additional comments (3)
docker/Dockerfile (3)

20-20: LGTM — entrypoint invocation is clear and portable.

Using the explicit /bin/bash wrapper avoids reliance on Alpine's default ash shell, which may not support all bash-specific syntax in the entrypoint script. The array form of ENTRYPOINT is also idiomatic Docker.


16-16: Entrypoint.sh verified—file exists and syntax is valid.

The docker/entrypoint.sh file exists at the expected path and contains valid bash syntax. No issues found.


9-9: Verify Java 21 compatibility and align build/runtime versions.

The upgrade from Java 11 to 21 is a significant version jump that requires testing to ensure the application is compatible. While the transition to Alpine Linux poses no glibc compatibility risk (no native libraries detected), the build stage still uses Java 11, creating a mismatch with the Java 21 runtime.

Confirmed safe:

  • docker/entrypoint.sh exists and is properly configured.
  • No glibc-dependent libraries found; Alpine compatibility is low-risk.

Before merging, confirm:

  • The application has been tested and runs correctly with Java 21 (locally or in CI).
  • Update the build stage to eclipse-temurin:21-alpine (or compatible Scala/SBT builder) to catch Java version incompatibilities at build time and ensure consistency.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant