Skip to content

[MI-4.6.0] Add changes for MI Release#408

Open
AmilaSamith wants to merge 1 commit intowso2:masterfrom
AmilaSamith:4.6.0
Open

[MI-4.6.0] Add changes for MI Release#408
AmilaSamith wants to merge 1 commit intowso2:masterfrom
AmilaSamith:4.6.0

Conversation

@AmilaSamith
Copy link
Copy Markdown
Contributor

@AmilaSamith AmilaSamith commented Mar 19, 2026

Purpose

  • Upgrade MI Java version to JDK 25.

NOTE : Updated ICP java version to JDK 25 also but it shows following WARNING log. So reverted back to JDK 21.
WARNING: Incompatible JRE version '25.0.2' found. This ballerina program supports running on JRE version '21.0.*'

  • Fixed base image inconsistencies between MI and ICP.
  • Bump versions and update README of MI and ICP.

Products

  • WSO2 Integrator : MI - 4.6.0
  • WSO2 Integration Control Plane - 2.0.0

Summary by CodeRabbit

  • Chores

    • Updated base images and bumped Temurin/OpenJDK versions across builds.
    • Bumped product defaults (Integration Control Plane → 2.0.0, Micro Integrator → 4.6.0) and image metadata.
    • Changed container startup to invoke the ICP server entrypoint and expanded exposed ports to 9445–9449.
  • Documentation

    • Updated README examples, artifact names, image tags, paths, and run commands to reflect new versions and port mappings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 19, 2026

Walkthrough

Updated Dockerfiles, entrypoints, and READMEs for Alpine, Rocky, and Ubuntu: base images and Temurin JDK versions bumped, WSO2 product versions advanced (ICP 1.0.0→2.0.0, MI 4.5.0→4.6.0), ICP exposed ports changed to 9445–9449, and ICP entrypoint switched from dashboard.sh to icp.sh.

Changes

Cohort / File(s) Summary
Integration Control Plane - Alpine
dockerfiles/alpine/integration-control-plane/Dockerfile, dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh, dockerfiles/alpine/integration-control-plane/README.md
Base image → alpine:3.23.3; Temurin JDK jdk-21.0.10+7 (URLs & ESUMs updated); ARG WSO2_SERVER_VERSION 1.0.0→2.0.0; label → v4.6.0.0; exposed ports 97439445 9446 9447 9448 9449; entrypoint now runs icp.sh; README adjusted (filenames, tags, port mappings).
Integration Control Plane - Rocky
dockerfiles/rocky/integration-control-plane/Dockerfile, dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh, dockerfiles/rocky/integration-control-plane/README.md
Base image → rockylinux/rockylinux:9.5; Temurin JDK jdk-21.0.10+7 (per-arch URLs & ESUMs updated); ARG WSO2_SERVER_VERSION 1.0.0→2.0.0; label → v4.6.0.0; exposed ports expanded to 9445–9449; entrypoint now runs icp.sh; README updated.
Integration Control Plane - Ubuntu
dockerfiles/ubuntu/integration-control-plane/Dockerfile, dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh, dockerfiles/ubuntu/integration-control-plane/README.md
Temurin JDK jdk-21.0.10+7 (arch-specific URLs & ESUMs updated); ARG WSO2_SERVER_VERSION 1.0.0→2.0.0; label → v4.6.0.0; exposed ports 97439445–9449; entrypoint switched to icp.sh; README updated for version and ports.
Micro Integrator - Alpine
dockerfiles/alpine/micro-integrator/Dockerfile, dockerfiles/alpine/micro-integrator/README.md
Base image → alpine:3.23.3; Temurin JDK upgraded to jdk-25.0.2+10 (URLs & ESUMs updated); ARG WSO2_SERVER_VERSION 4.5.0→4.6.0; label → v4.6.0.0; README references updated.
Micro Integrator - Rocky
dockerfiles/rocky/micro-integrator/Dockerfile, dockerfiles/rocky/micro-integrator/README.md
Added yum -y upgrade before package install; Temurin JDK → jdk-25.0.2+10 (arch-specific BINARY_URLs & ESUMs updated); ARG WSO2_SERVER_VERSION 4.5.0→4.6.0; label → v4.6.0.0; README updated.
Micro Integrator - Ubuntu
dockerfiles/ubuntu/micro-integrator/Dockerfile, dockerfiles/ubuntu/micro-integrator/README.md
Base image → ubuntu:25.10; Temurin JDK → jdk-25.0.2+10 (URLs & checksums updated); ARG WSO2_SERVER_VERSION 4.5.0→4.6.0; label → v4.6.0.0; README references updated.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through Dockerfiles with care,
Swapped JDKs and ports, a tidy fare,
From dashboard’s script to icp’s new song,
Versions moved along—quick, neat, and strong! ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description provides purpose and product versions but lacks most required template sections like Goals, Approach, User Stories, Release Notes, Documentation, Testing, and Security checks. Complete the PR description by adding Goals, Approach, User Stories, Release Notes, Documentation links, test coverage details, security checks confirmation, and other applicable sections from the template.
Title check ❓ Inconclusive The title broadly references MI 4.6.0 release changes but doesn't clearly specify the main technical updates (base image upgrades, Java version bumps, port changes, entrypoint script changes). Make the title more specific about key changes, e.g., 'Update Docker images for MI 4.6.0 and ICP 2.0.0 releases' or 'Bump MI to 4.6.0 and update base images and Java versions'.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
dockerfiles/rocky/micro-integrator/README.md (1)

18-18: ⚠️ Potential issue | 🟡 Minor

Pre-existing: Incorrect directory path reference.

Line 18 references dockerfiles/rockylinux/micro-integrator but the actual directory path is dockerfiles/rocky/micro-integrator. This could confuse users following the instructions.

📝 Proposed fix
->The local copy of the `dockerfiles/rockylinux/micro-integrator` directory will be referred to as `MI_DOCKERFILE_HOME` from this point onwards.
+>The local copy of the `dockerfiles/rocky/micro-integrator` directory will be referred to as `MI_DOCKERFILE_HOME` from this point onwards.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/micro-integrator/README.md` at line 18, Update the README
text that defines MI_DOCKERFILE_HOME to use the correct directory string:
replace the incorrect 'dockerfiles/rockylinux/micro-integrator' with
'dockerfiles/rocky/micro-integrator' so the variable MI_DOCKERFILE_HOME points
to the actual directory path referenced elsewhere.
🧹 Nitpick comments (3)
dockerfiles/alpine/micro-integrator/README.md (1)

22-22: Minor: Consider using descriptive link text instead of "here".

Using "here" as link text is less accessible for screen readers and doesn't convey the link destination. This is a pre-existing pattern but worth noting for future improvements.

📝 Suggested improvement
-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/micro-integrator)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/micro-integrator) from the WSO2 website
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/README.md` at line 22, Replace the
non-descriptive link text "here" in the README line "Download wso2mi-4.6.0.zip
from [here](https://wso2.com/micro-integrator)" with descriptive link text that
conveys the destination (e.g., "WSO2 Micro Integrator downloads page" or "WSO2
Micro Integrator download") so screen readers and users understand the link
purpose; simply edit the markdown link label to the descriptive phrase while
keeping the existing URL.
dockerfiles/rocky/integration-control-plane/README.md (1)

22-22: Use descriptive link text instead of "here".

Same accessibility concern as in the Alpine README - the link text "here" is non-descriptive.

Suggested fix
-- Download wso2-integration-control-plane-2.0.0.zip from [here](https://wso2.com/micro-integrator)
+- Download [wso2-integration-control-plane-2.0.0.zip](https://wso2.com/micro-integrator)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/integration-control-plane/README.md` at line 22, Replace
the non-descriptive link text "here" in the markdown line that references
"wso2-integration-control-plane-2.0.0.zip" with a descriptive phrase (e.g.,
"WSO2 Micro Integrator download page" or "WSO2 Integration Control Plane
download") so the link text conveys its destination and purpose; update the
markdown link target accordingly while keeping the referenced filename
"wso2-integration-control-plane-2.0.0.zip" visible in the sentence.
dockerfiles/alpine/integration-control-plane/README.md (1)

23-23: Use descriptive link text instead of "here".

The link text "here" is non-descriptive and impacts accessibility. Screen readers and users benefit from meaningful link text that describes the destination.

Suggested fix
-- Download wso2-integration-control-plane-2.0.0.zip from [here](https://wso2.com/micro-integrator)
+- Download [wso2-integration-control-plane-2.0.0.zip](https://wso2.com/micro-integrator)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/integration-control-plane/README.md` at line 23, Replace
the non-descriptive link text "here" in the README line "Download
wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/micro-integrator)" with a meaningful label (e.g., "WSO2
Integration Control Plane download page" or "Download WSO2 Micro Integrator") so
the link text describes the destination; update the string in the README.md
accordingly where the phrase "Download wso2-integration-control-plane-2.0.0.zip
from [here]" appears.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh`:
- Line 30: The shell uses a POSIX /bin/sh shebang but the copy line uses
bash-only [[ ... ]], so replace the bash conditional in the config-volume copy
logic with a POSIX-compatible test using [ ] or test and a non-empty check
(e.g., test -d "$config_volume" && [ "$(ls -A "$config_volume")" ] || [ -n "$(ls
-A "$config_volume")" ] ) before copying into $WSO2_SERVER_HOME; update the
conditional that references config_volume and WSO2_SERVER_HOME to use quoted
variables to avoid word-splitting and ensure compatibility with BusyBox ash.

---

Outside diff comments:
In `@dockerfiles/rocky/micro-integrator/README.md`:
- Line 18: Update the README text that defines MI_DOCKERFILE_HOME to use the
correct directory string: replace the incorrect
'dockerfiles/rockylinux/micro-integrator' with
'dockerfiles/rocky/micro-integrator' so the variable MI_DOCKERFILE_HOME points
to the actual directory path referenced elsewhere.

---

Nitpick comments:
In `@dockerfiles/alpine/integration-control-plane/README.md`:
- Line 23: Replace the non-descriptive link text "here" in the README line
"Download wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/micro-integrator)" with a meaningful label (e.g., "WSO2
Integration Control Plane download page" or "Download WSO2 Micro Integrator") so
the link text describes the destination; update the string in the README.md
accordingly where the phrase "Download wso2-integration-control-plane-2.0.0.zip
from [here]" appears.

In `@dockerfiles/alpine/micro-integrator/README.md`:
- Line 22: Replace the non-descriptive link text "here" in the README line
"Download wso2mi-4.6.0.zip from [here](https://wso2.com/micro-integrator)" with
descriptive link text that conveys the destination (e.g., "WSO2 Micro Integrator
downloads page" or "WSO2 Micro Integrator download") so screen readers and users
understand the link purpose; simply edit the markdown link label to the
descriptive phrase while keeping the existing URL.

In `@dockerfiles/rocky/integration-control-plane/README.md`:
- Line 22: Replace the non-descriptive link text "here" in the markdown line
that references "wso2-integration-control-plane-2.0.0.zip" with a descriptive
phrase (e.g., "WSO2 Micro Integrator download page" or "WSO2 Integration Control
Plane download") so the link text conveys its destination and purpose; update
the markdown link target accordingly while keeping the referenced filename
"wso2-integration-control-plane-2.0.0.zip" visible in the sentence.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 54f6c574-65d0-458e-ad7b-0fc230757597

📥 Commits

Reviewing files that changed from the base of the PR and between 8729b3d and a4d5bb3.

📒 Files selected for processing (15)
  • dockerfiles/alpine/integration-control-plane/Dockerfile
  • dockerfiles/alpine/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/alpine/micro-integrator/Dockerfile
  • dockerfiles/alpine/micro-integrator/README.md
  • dockerfiles/rocky/integration-control-plane/Dockerfile
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/micro-integrator/Dockerfile
  • dockerfiles/rocky/micro-integrator/README.md
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
  • dockerfiles/ubuntu/integration-control-plane/README.md
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/ubuntu/micro-integrator/README.md

@@ -30,4 +30,4 @@ test ! -d ${WSO2_SERVER_HOME} && echo "WSO2 Docker product home does not exist"
test -d ${config_volume} && [[ "$(ls -A ${config_volume})" ]] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Pre-existing issue: [[ ]] is not POSIX-compatible with #!/bin/sh.

This file uses #!/bin/sh (line 1), but line 30 uses [[ ... ]] which is a bash-specific construct. On Alpine, /bin/sh is typically BusyBox ash, which does not support [[ ]]. This could cause the config volume copy logic to fail silently or error out.

Consider changing to POSIX-compatible syntax:

🔧 Proposed fix
-test -d ${config_volume} && [[ "$(ls -A ${config_volume})" ]] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/
+test -d ${config_volume} && [ -n "$(ls -A ${config_volume})" ] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test -d ${config_volume} && [[ "$(ls -A ${config_volume})" ]] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/
test -d ${config_volume} && [ -n "$(ls -A ${config_volume})" ] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/
🧰 Tools
🪛 Shellcheck (0.11.0)

[warning] 30-30: In POSIX sh, [[ ]] is undefined.

(SC3010)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh` at line
30, The shell uses a POSIX /bin/sh shebang but the copy line uses bash-only [[
... ]], so replace the bash conditional in the config-volume copy logic with a
POSIX-compatible test using [ ] or test and a non-empty check (e.g., test -d
"$config_volume" && [ "$(ls -A "$config_volume")" ] || [ -n "$(ls -A
"$config_volume")" ] ) before copying into $WSO2_SERVER_HOME; update the
conditional that references config_volume and WSO2_SERVER_HOME to use quoted
variables to avoid word-splitting and ensure compatibility with BusyBox ash.

@AmilaSamith AmilaSamith force-pushed the 4.6.0 branch 2 times, most recently from f2362db to 1a56747 Compare March 20, 2026 02:46
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
dockerfiles/alpine/integration-control-plane/Dockerfile (1)

73-77: ⚠️ Potential issue | 🟠 Major

Add integrity verification for the WSO2 distribution ZIP before unzip.

The artifact downloaded from WSO2_SERVER_DIST_URL is extracted without checksum verification, creating a supply-chain risk. This pattern is inconsistent with the integrity checks applied to OpenJDK downloads (which use SHA256 verification) and affects all Dockerfile variants (alpine, rocky, ubuntu) for both integration-control-plane and micro-integrator.

Proposed hardening diff
 ARG WSO2_SERVER_VERSION=2.0.0
 ARG WSO2_SERVER_REPOSITORY=micro-integrator
 ARG WSO2_SERVER=${WSO2_SERVER_NAME}-${WSO2_SERVER_VERSION}
 ARG WSO2_SERVER_HOME=${USER_HOME}/${WSO2_SERVER}
 ARG WSO2_SERVER_DIST_URL=<INTEGRATION_CONTROL_PLANE_DIST_URL>
+ARG WSO2_SERVER_DIST_SHA256=<INTEGRATION_CONTROL_PLANE_DIST_SHA256>

@@
 RUN \
     wget -O ${WSO2_SERVER}.zip "${WSO2_SERVER_DIST_URL}" \
+    && echo "${WSO2_SERVER_DIST_SHA256} *${WSO2_SERVER}.zip" | sha256sum -c - \
     && unzip -d ${USER_HOME} ${WSO2_SERVER}.zip \
     && rm -f ${WSO2_SERVER}.zip \
     && chown wso2carbon:wso2 -R ${WSO2_SERVER_HOME}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/integration-control-plane/Dockerfile` around lines 73 -
77, The Dockerfile currently downloads and extracts the WSO2 distribution from
ARG WSO2_SERVER_DIST_URL into ARG WSO2_SERVER_HOME without verifying integrity;
update the image build steps that fetch and unzip the artifact (where
WSO2_SERVER_DIST_URL, WSO2_SERVER and WSO2_SERVER_HOME are used) to perform a
SHA256 verification: accept an expected checksum via a new build ARG (e.g.
WSO2_SERVER_DIST_SHA256) or download a .sha256 file alongside the ZIP, compute
the SHA256 of the downloaded file (sha256sum or shasum -a 256) and run a
checksum verification (sha256sum -c or compare digests), and abort the build if
verification fails before running unzip; apply the same change pattern to the
other Dockerfile variants (alpine, rocky, ubuntu) for both
integration-control-plane and micro-integrator so all artifacts are
integrity-checked.
🧹 Nitpick comments (5)
dockerfiles/ubuntu/micro-integrator/README.md (1)

3-3: Minor grammar and link text improvements.

Two optional improvements:

  1. "Linux based" should be hyphenated as "Linux-based" when used as a compound adjective.
  2. Line 22: the link text "here" could be more descriptive.
📝 Suggested improvements
-This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Micro Integrator 4.6.0.
+This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux-based Docker image for WSO2 Micro Integrator 4.6.0.

For line 22:

-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/ubuntu/micro-integrator/README.md` at line 3, Update the sentence
"This section defines the step-by-step instructions to build an
[Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2
Micro Integrator 4.6.0." to use the hyphenated compound adjective "Linux-based";
also replace the link text "here" (the link on line 22) with a more descriptive
phrase such as "WSO2 Micro Integrator download page" or "WSO2 Micro Integrator
4.6.0 download" while keeping the same URL.
dockerfiles/alpine/micro-integrator/Dockerfile (1)

94-95: Consider adding CRLF normalization for consistency.

The Ubuntu Dockerfile adds CRLF line ending normalization for docker-entrypoint.sh (line 101), but this Alpine Dockerfile does not. For consistency and cross-platform robustness, consider adding the same treatment.

♻️ Suggested addition
 # copy init script to user home
 COPY --chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/
+RUN sed -i 's/\r$//' ${USER_HOME}/docker-entrypoint.sh && chmod +x ${USER_HOME}/docker-entrypoint.sh
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/Dockerfile` around lines 94 - 95, The
Alpine Dockerfile currently copies docker-entrypoint.sh with "COPY
--chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/" but lacks CRLF
normalization added in the Ubuntu Dockerfile; update the Dockerfile to normalize
line endings for docker-entrypoint.sh (the same way the Ubuntu Dockerfile does)
before or during the COPY step so the file in ${USER_HOME} has normalized
LF/CRLF handling for cross-platform consistency, referencing the COPY --chown
command and docker-entrypoint.sh to locate where to apply the change.
dockerfiles/rocky/micro-integrator/README.md (1)

22-22: Consider using descriptive link text.

The link text "here" is not descriptive. For better accessibility and clarity, consider rephrasing to include the destination context.

📝 Suggested improvement
-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/micro-integrator/README.md` at line 22, Replace the
non‑descriptive link text "here" in the line "Download wso2mi-4.6.0.zip from
here" with descriptive link text that conveys the destination (e.g., "WSO2 Micro
Integrator 4.6.0 download" or "WSO2 Micro Integrator 4.6.0 download page"),
keeping the existing URL target unchanged so the sentence reads clearly and is
accessible.
dockerfiles/alpine/micro-integrator/README.md (1)

3-3: Minor grammar and link text improvements.

Two optional improvements:

  1. "Linux based" should be hyphenated as "Linux-based" when used as a compound adjective.
  2. Line 22: the link text "here" could be more descriptive.
📝 Suggested improvements
-This section defines the step-by-step instructions to build an [Alpine](https://hub.docker.com/_/alpine/) Linux based Docker image for WSO2 Micro Integrator 4.6.0.
+This section defines the step-by-step instructions to build an [Alpine](https://hub.docker.com/_/alpine/) Linux-based Docker image for WSO2 Micro Integrator 4.6.0.

For line 22:

-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/README.md` at line 3, Update the README
sentence "This section defines the step-by-step instructions to build an Alpine
Linux based Docker image for WSO2 Micro Integrator 4.6.0." to hyphenate the
compound adjective as "Linux-based", and replace the non-descriptive link text
"here" (found on the referenced line) with a more meaningful phrase like "Alpine
Docker image on Docker Hub" (or similar descriptive text) so the link context is
clear.
dockerfiles/alpine/integration-control-plane/Dockerfile (1)

20-20: Pin the Alpine base image by digest to make builds reproducible.

Using only alpine:3.23.3 is mutable and can change build output over time.

Proposed change
-FROM alpine:3.23.3
+FROM alpine:3.23.3@sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/integration-control-plane/Dockerfile` at line 20, The
Dockerfile's base image is referenced by a mutable tag ("FROM alpine:3.23.3");
replace this with the image digest (e.g., "FROM alpine@sha256:<digest>") to pin
the exact image and make builds reproducible—update the FROM line in
dockerfiles/alpine/integration-control-plane/Dockerfile accordingly and obtain
the correct sha256 digest from the Alpine image registry or by using "docker
manifest inspect" / "docker pull --platform" to ensure the digest matches the
3.23.3 variant you intend to pin.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dockerfiles/rocky/micro-integrator/README.md`:
- Line 60: The README's TARGET_CONFIGS path (/home/wso2carbon/wso2mi-4.6.0/conf)
is inconsistent with the Dockerfile's WSO2_SERVER_VERSION=4.6.0-SNAPSHOT; update
either the README or the Dockerfile so they match: either change the README to
mention /home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf (referencing TARGET_CONFIGS)
or change WSO2_SERVER_VERSION to 4.6.0 in the Rocky Dockerfile so the container
path is /home/wso2carbon/wso2mi-4.6.0/conf; ensure the chosen fix is applied
consistently across README.md and the WSO2_SERVER_VERSION declaration.

In `@dockerfiles/ubuntu/integration-control-plane/README.md`:
- Line 3: Change the compound adjective in the intro sentence by replacing the
open text "Linux based" with the hyphenated form "Linux-based" in the sentence
that begins "This section defines the step-by-step instructions to build an
Ubuntu Linux based Docker image for WSO2 Integration Control Plane 2.0.0." to
produce "This section defines the step-by-step instructions to build an Ubuntu
Linux-based Docker image for WSO2 Integration Control Plane 2.0.0."

In `@dockerfiles/ubuntu/micro-integrator/Dockerfile`:
- Line 80: The ARG WSO2_SERVER_VERSION differs across images (Ubuntu uses
"4.6.0-SNAPSHOT" while Alpine uses "4.6.0"), causing inconsistent install
directories; unify the value of ARG WSO2_SERVER_VERSION across all Dockerfiles
(Ubuntu, Alpine, Rocky) to the same string (pick either "4.6.0" or
"4.6.0-SNAPSHOT"), update any downstream references that build the installation
path (the /home/wso2carbon/wso2mi-4.6.0[-SNAPSHOT]/ pattern) so they use the
chosen version, and update README(s) to reflect the resulting canonical
installation path.

In `@dockerfiles/ubuntu/micro-integrator/README.md`:
- Line 61: The README's <TARGET_CONFIGS> path is incorrect relative to the
Dockerfile's WSO2_SERVER_VERSION; update the README so <TARGET_CONFIGS> points
to /home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf (or change it to reference the
WSO2_SERVER_VERSION variable generically, e.g.
/home/wso2carbon/wso2mi-{WSO2_SERVER_VERSION}/conf) to match the Dockerfile's
WSO2_SERVER_VERSION=4.6.0-SNAPSHOT; apply the same fix to the Rocky README to
keep both docs consistent.

---

Outside diff comments:
In `@dockerfiles/alpine/integration-control-plane/Dockerfile`:
- Around line 73-77: The Dockerfile currently downloads and extracts the WSO2
distribution from ARG WSO2_SERVER_DIST_URL into ARG WSO2_SERVER_HOME without
verifying integrity; update the image build steps that fetch and unzip the
artifact (where WSO2_SERVER_DIST_URL, WSO2_SERVER and WSO2_SERVER_HOME are used)
to perform a SHA256 verification: accept an expected checksum via a new build
ARG (e.g. WSO2_SERVER_DIST_SHA256) or download a .sha256 file alongside the ZIP,
compute the SHA256 of the downloaded file (sha256sum or shasum -a 256) and run a
checksum verification (sha256sum -c or compare digests), and abort the build if
verification fails before running unzip; apply the same change pattern to the
other Dockerfile variants (alpine, rocky, ubuntu) for both
integration-control-plane and micro-integrator so all artifacts are
integrity-checked.

---

Nitpick comments:
In `@dockerfiles/alpine/integration-control-plane/Dockerfile`:
- Line 20: The Dockerfile's base image is referenced by a mutable tag ("FROM
alpine:3.23.3"); replace this with the image digest (e.g., "FROM
alpine@sha256:<digest>") to pin the exact image and make builds
reproducible—update the FROM line in
dockerfiles/alpine/integration-control-plane/Dockerfile accordingly and obtain
the correct sha256 digest from the Alpine image registry or by using "docker
manifest inspect" / "docker pull --platform" to ensure the digest matches the
3.23.3 variant you intend to pin.

In `@dockerfiles/alpine/micro-integrator/Dockerfile`:
- Around line 94-95: The Alpine Dockerfile currently copies docker-entrypoint.sh
with "COPY --chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/" but lacks
CRLF normalization added in the Ubuntu Dockerfile; update the Dockerfile to
normalize line endings for docker-entrypoint.sh (the same way the Ubuntu
Dockerfile does) before or during the COPY step so the file in ${USER_HOME} has
normalized LF/CRLF handling for cross-platform consistency, referencing the COPY
--chown command and docker-entrypoint.sh to locate where to apply the change.

In `@dockerfiles/alpine/micro-integrator/README.md`:
- Line 3: Update the README sentence "This section defines the step-by-step
instructions to build an Alpine Linux based Docker image for WSO2 Micro
Integrator 4.6.0." to hyphenate the compound adjective as "Linux-based", and
replace the non-descriptive link text "here" (found on the referenced line) with
a more meaningful phrase like "Alpine Docker image on Docker Hub" (or similar
descriptive text) so the link context is clear.

In `@dockerfiles/rocky/micro-integrator/README.md`:
- Line 22: Replace the non‑descriptive link text "here" in the line "Download
wso2mi-4.6.0.zip from here" with descriptive link text that conveys the
destination (e.g., "WSO2 Micro Integrator 4.6.0 download" or "WSO2 Micro
Integrator 4.6.0 download page"), keeping the existing URL target unchanged so
the sentence reads clearly and is accessible.

In `@dockerfiles/ubuntu/micro-integrator/README.md`:
- Line 3: Update the sentence "This section defines the step-by-step
instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based
Docker image for WSO2 Micro Integrator 4.6.0." to use the hyphenated compound
adjective "Linux-based"; also replace the link text "here" (the link on line 22)
with a more descriptive phrase such as "WSO2 Micro Integrator download page" or
"WSO2 Micro Integrator 4.6.0 download" while keeping the same URL.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 221d1851-6929-4f4c-be59-d4d5fc1770fb

📥 Commits

Reviewing files that changed from the base of the PR and between a4d5bb3 and f2362db.

📒 Files selected for processing (15)
  • dockerfiles/alpine/integration-control-plane/Dockerfile
  • dockerfiles/alpine/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/alpine/micro-integrator/Dockerfile
  • dockerfiles/alpine/micro-integrator/README.md
  • dockerfiles/rocky/integration-control-plane/Dockerfile
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/micro-integrator/Dockerfile
  • dockerfiles/rocky/micro-integrator/README.md
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
  • dockerfiles/ubuntu/integration-control-plane/README.md
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/ubuntu/micro-integrator/README.md
✅ Files skipped from review due to trivial changes (4)
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/README.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
  • dockerfiles/rocky/integration-control-plane/Dockerfile
  • dockerfiles/rocky/micro-integrator/Dockerfile

```

> In here, <TARGET_CONFIGS> refers to /home/wso2carbon/wso2mi-4.5.0/conf folder of the container.
> In here, <TARGET_CONFIGS> refers to /home/wso2carbon/wso2mi-4.6.0/conf folder of the container.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Documentation path mismatch with Dockerfile.

The README references /home/wso2carbon/wso2mi-4.6.0/conf, but the Rocky Dockerfile at line 78 uses WSO2_SERVER_VERSION=4.6.0-SNAPSHOT, which means the actual container path would be /home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf.

Either update the README to reflect the -SNAPSHOT suffix, or change the Dockerfile version to 4.6.0 (without -SNAPSHOT) for GA release alignment.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/micro-integrator/README.md` at line 60, The README's
TARGET_CONFIGS path (/home/wso2carbon/wso2mi-4.6.0/conf) is inconsistent with
the Dockerfile's WSO2_SERVER_VERSION=4.6.0-SNAPSHOT; update either the README or
the Dockerfile so they match: either change the README to mention
/home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf (referencing TARGET_CONFIGS) or
change WSO2_SERVER_VERSION to 4.6.0 in the Rocky Dockerfile so the container
path is /home/wso2carbon/wso2mi-4.6.0/conf; ensure the chosen fix is applied
consistently across README.md and the WSO2_SERVER_VERSION declaration.

# Dockerfile for WSO2 Integration Control Plane

This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Integration Control Plane 1.0.0.
This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Integration Control Plane 2.0.0.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use hyphenated compound adjective in the intro sentence.

Line 3 should use “Linux-based” instead of “Linux based”.

✏️ Suggested doc fix
-This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Integration Control Plane 2.0.0.
+This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux-based Docker image for WSO2 Integration Control Plane 2.0.0.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Integration Control Plane 2.0.0.
This section defines the step-by-step instructions to build an [Ubuntu](https://hub.docker.com/_/ubuntu/) Linux-based Docker image for WSO2 Integration Control Plane 2.0.0.
🧰 Tools
🪛 LanguageTool

[grammar] ~3-~3: Use a hyphen to join words.
Context: ...(https://hub.docker.com/_/ubuntu/) Linux based Docker image for WSO2 Integration ...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/ubuntu/integration-control-plane/README.md` at line 3, Change the
compound adjective in the intro sentence by replacing the open text "Linux
based" with the hyphenated form "Linux-based" in the sentence that begins "This
section defines the step-by-step instructions to build an Ubuntu Linux based
Docker image for WSO2 Integration Control Plane 2.0.0." to produce "This section
defines the step-by-step instructions to build an Ubuntu Linux-based Docker
image for WSO2 Integration Control Plane 2.0.0."

```

> In here, <TARGET_CONFIGS> refers to /home/wso2carbon/wso2mi-4.5.0/conf folder of the container.
> In here, <TARGET_CONFIGS> refers to /home/wso2carbon/wso2mi-4.6.0/conf folder of the container.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Documentation path mismatch with Dockerfile.

The README references /home/wso2carbon/wso2mi-4.6.0/conf, but the Ubuntu Dockerfile uses WSO2_SERVER_VERSION=4.6.0-SNAPSHOT, meaning the actual container path would be /home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf.

This is the same inconsistency noted in the Rocky README.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/ubuntu/micro-integrator/README.md` at line 61, The README's
<TARGET_CONFIGS> path is incorrect relative to the Dockerfile's
WSO2_SERVER_VERSION; update the README so <TARGET_CONFIGS> points to
/home/wso2carbon/wso2mi-4.6.0-SNAPSHOT/conf (or change it to reference the
WSO2_SERVER_VERSION variable generically, e.g.
/home/wso2carbon/wso2mi-{WSO2_SERVER_VERSION}/conf) to match the Dockerfile's
WSO2_SERVER_VERSION=4.6.0-SNAPSHOT; apply the same fix to the Rocky README to
keep both docs consistent.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (4)
dockerfiles/ubuntu/integration-control-plane/README.md (1)

22-22: Consider using descriptive link text instead of "here".

The link text "here" is non-descriptive. Using descriptive link text improves accessibility and helps users understand where the link leads without relying on surrounding context.

✏️ Suggested improvement
-- Download wso2-integration-control-plane-2.0.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)
+- Download [wso2-integration-control-plane-2.0.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=icp) from the WSO2 downloads page.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/ubuntu/integration-control-plane/README.md` at line 22, Replace
the non-descriptive link text "here" with descriptive link text that conveys the
destination (e.g., "WSO2 Integration Control Plane download page" or "WSO2
Integrator ICP download") in the README line that currently says "Download
wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)";
keep the same URL but update the link label for better accessibility and
clarity.
dockerfiles/alpine/micro-integrator/README.md (1)

22-22: Consider using more descriptive link text.

Same issue as the Rocky README - the link text "here" is non-descriptive.

📝 Suggested improvement
-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/README.md` at line 22, Replace the
non-descriptive link text "here" in the README sentence "Download
wso2mi-4.6.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)"
with a descriptive phrase (e.g., "WSO2 Micro Integrator 4.6.0 download page" or
"WSO2 Integrator downloads") so the markdown link clearly conveys its
destination; update the link label in the README line accordingly to improve
accessibility and clarity.
dockerfiles/ubuntu/micro-integrator/README.md (1)

22-22: Consider using more descriptive link text.

Same issue as the other README files - the link text "here" is non-descriptive.

📝 Suggested improvement
-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/ubuntu/micro-integrator/README.md` at line 22, Replace the
non-descriptive link text "here" in
dockerfiles/ubuntu/micro-integrator/README.md with a descriptive phrase (e.g.,
"WSO2 Micro Integrator 4.6.0 download page" or "download WSO2 Micro Integrator
4.6.0") so the link conveys its destination and improves accessibility and
clarity; update the markdown line that currently reads 'Download
wso2mi-4.6.0.zip from [here](...)' to use the chosen descriptive text while
keeping the same URL.
dockerfiles/rocky/micro-integrator/README.md (1)

22-22: Consider using more descriptive link text.

Static analysis flagged the link text "here" as non-descriptive. More descriptive link text improves accessibility and SEO.

📝 Suggested improvement
-- Download wso2mi-4.6.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)
+- Download [wso2mi-4.6.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=mi) from the WSO2 downloads page.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/micro-integrator/README.md` at line 22, Replace the
non-descriptive link text "here" with a descriptive phrase in the README entry
(the Markdown line containing "Download wso2mi-4.6.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)");
update the link text to something meaningful such as "WSO2 Micro Integrator
4.6.0 download page" or "download WSO2 Micro Integrator 4.6.0" so the anchor
conveys the destination and improves accessibility/SEO.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dockerfiles/rocky/micro-integrator/Dockerfile`:
- Line 50: Remove the trailing whitespace after the line-continuation backslash
in the Dockerfile: locate the line containing the sequence ";; \" (the shell
case/continuation line) and delete any spaces/tabs after the backslash so the
backslash is the final character on the line; ensure the line-ending contains
only the backslash for a proper shell continuation to avoid Docker build issues.

In `@dockerfiles/ubuntu/integration-control-plane/Dockerfile`:
- Line 52: Remove the trailing whitespace after the continuation backslash in
the Dockerfile token sequence ";; \" so the backslash is the very last character
on the line (i.e., change ";; \ " to ";;\" with the backslash immediately
followed by a newline); locate the line containing ";; \" and delete the space
after the backslash to avoid shell parsing issues.

---

Nitpick comments:
In `@dockerfiles/alpine/micro-integrator/README.md`:
- Line 22: Replace the non-descriptive link text "here" in the README sentence
"Download wso2mi-4.6.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)"
with a descriptive phrase (e.g., "WSO2 Micro Integrator 4.6.0 download page" or
"WSO2 Integrator downloads") so the markdown link clearly conveys its
destination; update the link label in the README line accordingly to improve
accessibility and clarity.

In `@dockerfiles/rocky/micro-integrator/README.md`:
- Line 22: Replace the non-descriptive link text "here" with a descriptive
phrase in the README entry (the Markdown line containing "Download
wso2mi-4.6.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=mi)");
update the link text to something meaningful such as "WSO2 Micro Integrator
4.6.0 download page" or "download WSO2 Micro Integrator 4.6.0" so the anchor
conveys the destination and improves accessibility/SEO.

In `@dockerfiles/ubuntu/integration-control-plane/README.md`:
- Line 22: Replace the non-descriptive link text "here" with descriptive link
text that conveys the destination (e.g., "WSO2 Integration Control Plane
download page" or "WSO2 Integrator ICP download") in the README line that
currently says "Download wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)";
keep the same URL but update the link label for better accessibility and
clarity.

In `@dockerfiles/ubuntu/micro-integrator/README.md`:
- Line 22: Replace the non-descriptive link text "here" in
dockerfiles/ubuntu/micro-integrator/README.md with a descriptive phrase (e.g.,
"WSO2 Micro Integrator 4.6.0 download page" or "download WSO2 Micro Integrator
4.6.0") so the link conveys its destination and improves accessibility and
clarity; update the markdown line that currently reads 'Download
wso2mi-4.6.0.zip from [here](...)' to use the chosen descriptive text while
keeping the same URL.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3f0a3737-2145-4673-847b-0bcf21c57c9b

📥 Commits

Reviewing files that changed from the base of the PR and between f2362db and 1a56747.

📒 Files selected for processing (15)
  • dockerfiles/alpine/integration-control-plane/Dockerfile
  • dockerfiles/alpine/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/alpine/micro-integrator/Dockerfile
  • dockerfiles/alpine/micro-integrator/README.md
  • dockerfiles/rocky/integration-control-plane/Dockerfile
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/micro-integrator/Dockerfile
  • dockerfiles/rocky/micro-integrator/README.md
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
  • dockerfiles/ubuntu/integration-control-plane/README.md
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/ubuntu/micro-integrator/README.md
✅ Files skipped from review due to trivial changes (4)
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/README.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/rocky/integration-control-plane/Dockerfile

;; \
ESUM='987387933b64b9833846dee373b640440d3e1fd48a04804ec01a6dbf718e8ab8'; \
BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz'; \
;; \
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Trailing whitespace after backslash may cause build issues.

Line 50 appears to have trailing whitespace after \. This can cause the line continuation to fail in shell scripts, potentially breaking the Docker build.

🔧 Proposed fix
-         ;; \  
+         ;; \
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
;; \
;; \
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/micro-integrator/Dockerfile` at line 50, Remove the
trailing whitespace after the line-continuation backslash in the Dockerfile:
locate the line containing the sequence ";; \" (the shell case/continuation
line) and delete any spaces/tabs after the backslash so the backslash is the
final character on the line; ensure the line-ending contains only the backslash
for a proper shell continuation to avoid Docker build issues.

@wso2 wso2 deleted a comment from coderabbitai bot Mar 20, 2026
@wso2 wso2 deleted a comment from coderabbitai bot Mar 20, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
dockerfiles/rocky/integration-control-plane/README.md (1)

22-22: Consider using descriptive link text instead of "here".

Same as the Alpine README - the static analysis tool flagged non-descriptive link text. Consider making the filename itself the link text.

✏️ Suggested fix
-- Download wso2-integration-control-plane-2.0.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)
+- Download [wso2-integration-control-plane-2.0.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/rocky/integration-control-plane/README.md` at line 22, The README
uses non-descriptive link text "here"; update the link in README.md so the
anchor text is the filename (e.g., "wso2-integration-control-plane-2.0.0.zip")
instead of "here" to make the link self-descriptive and satisfy static analysis;
locate the line containing the download instruction in
dockerfiles/rocky/integration-control-plane/README.md and replace the anchor
text while keeping the same URL.
dockerfiles/alpine/integration-control-plane/README.md (1)

23-23: Consider using descriptive link text instead of "here".

The static analysis tool flagged the use of "here" as link text. Descriptive link text improves accessibility and SEO. Consider rephrasing to include the product name in the link.

✏️ Suggested fix
-- Download wso2-integration-control-plane-2.0.0.zip from [here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)
+- Download [wso2-integration-control-plane-2.0.0.zip](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/integration-control-plane/README.md` at line 23, Replace
the vague link text "here" with descriptive text that includes the product name
(e.g., "WSO2 Integration Control Plane 2.0.0 download" or
"wso2-integration-control-plane-2.0.0.zip") so the link reads like "Download
WSO2 Integration Control Plane 2.0.0 from WSO2 Integration Control Plane 2.0.0
download" (or similar); update the markdown link target in the README line that
currently contains "Download wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)"
to use the descriptive anchor text while keeping the existing URL.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dockerfiles/alpine/micro-integrator/Dockerfile`:
- Around line 62-63: The Dockerfile LABEL sets com.wso2.docker.source to a
non-existent release URL; update or remove that label so it doesn't point to a
dead tag. Locate the LABEL block containing maintainer and
com.wso2.docker.source and either change com.wso2.docker.source to a valid
existing release/tag URL (or a repository URL that will exist), or remove the
com.wso2.docker.source entry entirely (or defer the version bump) before
publishing.
- Around line 29-57: The Dockerfile pins Temurin JDK 25 (ENV
JAVA_VERSION=jdk-25.0.2+10 and the OpenJDK25U... BINARY_URL/ESUM blocks) which
is incompatible with the shipped MI version; change the image to Temurin 21 by
setting ENV JAVA_VERSION to the appropriate jdk-21 value and replace the JDK25
download URLs and checksum variables (BINARY_URL and ESUM referencing
OpenJDK25U-jdk_...) with the corresponding Temurin 21 Alpine binary URL and
checksum for each ARCH (amd64 and aarch64/arm64) so the Dockerfile downloads and
verifies JDK 21 instead of JDK 25; ensure tar extraction and cleanup logic in
the same RUN block remain unchanged.

---

Nitpick comments:
In `@dockerfiles/alpine/integration-control-plane/README.md`:
- Line 23: Replace the vague link text "here" with descriptive text that
includes the product name (e.g., "WSO2 Integration Control Plane 2.0.0 download"
or "wso2-integration-control-plane-2.0.0.zip") so the link reads like "Download
WSO2 Integration Control Plane 2.0.0 from WSO2 Integration Control Plane 2.0.0
download" (or similar); update the markdown link target in the README line that
currently contains "Download wso2-integration-control-plane-2.0.0.zip from
[here](https://wso2.com/products/downloads/?product=wso2integrator&package=icp)"
to use the descriptive anchor text while keeping the existing URL.

In `@dockerfiles/rocky/integration-control-plane/README.md`:
- Line 22: The README uses non-descriptive link text "here"; update the link in
README.md so the anchor text is the filename (e.g.,
"wso2-integration-control-plane-2.0.0.zip") instead of "here" to make the link
self-descriptive and satisfy static analysis; locate the line containing the
download instruction in dockerfiles/rocky/integration-control-plane/README.md
and replace the anchor text while keeping the same URL.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0a157a86-930b-4029-a19a-134c81632ab8

📥 Commits

Reviewing files that changed from the base of the PR and between 1a56747 and 16b1811.

📒 Files selected for processing (15)
  • dockerfiles/alpine/integration-control-plane/Dockerfile
  • dockerfiles/alpine/integration-control-plane/README.md
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/alpine/micro-integrator/Dockerfile
  • dockerfiles/alpine/micro-integrator/README.md
  • dockerfiles/rocky/integration-control-plane/Dockerfile
  • dockerfiles/rocky/integration-control-plane/README.md
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/micro-integrator/Dockerfile
  • dockerfiles/rocky/micro-integrator/README.md
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
  • dockerfiles/ubuntu/integration-control-plane/README.md
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/ubuntu/micro-integrator/README.md
✅ Files skipped from review due to trivial changes (4)
  • dockerfiles/alpine/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/rocky/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/integration-control-plane/docker-entrypoint.sh
  • dockerfiles/ubuntu/integration-control-plane/Dockerfile
🚧 Files skipped from review as they are similar to previous changes (2)
  • dockerfiles/ubuntu/micro-integrator/Dockerfile
  • dockerfiles/rocky/integration-control-plane/Dockerfile

Comment on lines +29 to 57
ENV JAVA_VERSION=jdk-25.0.2+10

# install Temurin OpenJDK 21
# install Temurin OpenJDK 25
RUN set -eux; \
ARCH="$(apk --print-arch)"; \
case "${ARCH}" in \
amd64|x86_64) \
ESUM='6c66470a9143ad562570a34c1583d9fa50bf904f6f9ced642e9d800ce043a0f3'; \
BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.6%2B7/OpenJDK21U-jdk_x64_alpine-linux_hotspot_21.0.6_7.tar.gz'; \
ESUM='961f13ba0ee1e18c41c50ab642361e4283dee5e7947a48ed6a72c8a661d0cca0'; \
BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.2_10.tar.gz'; \
;; \
aarch64|arm64) \
ESUM='2798990401d9c47eaeddb7d5148f577770e4c1013b9223290a43765463204ae4'; \
BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.6%2B7/OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.6_7.tar.gz'; \
ESUM='e8d928fb018eabb31a148ebadaa5a5ec69273e6562afede21c426960a6a67143'; \
BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.2_10.tar.gz'; \
;; \
*) \
echo "Unsupported arch: ${ARCH}"; \
exit 1; \
;; \
esac; \
wget -O /tmp/openjdk.tar.gz ${BINARY_URL}; \
echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
mkdir -p /opt/java/openjdk; \
tar --extract \
--file /tmp/openjdk.tar.gz \
--directory /opt/java/openjdk \
--strip-components 1 \
--no-same-owner \
; \
wget -O /tmp/openjdk.tar.gz ${BINARY_URL}; \
echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
mkdir -p /opt/java/openjdk; \
tar --extract \
--file /tmp/openjdk.tar.gz \
--directory /opt/java/openjdk \
--strip-components 1 \
--no-same-owner \
; \
rm -rf /tmp/openjdk.tar.gz;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, let's check what Dockerfiles are in the alpine/micro-integrator directory
find dockerfiles/alpine/micro-integrator -type f -name "Dockerfile*"

Repository: wso2/docker-ei

Length of output: 104


🏁 Script executed:

# Also check the rocky directory to see if there's a related file
find dockerfiles/rocky/micro-integrator -type f -name "Dockerfile*"

Repository: wso2/docker-ei

Length of output: 103


🏁 Script executed:

# Check if there are other Dockerfiles in the PR that might have Java version changes
git ls-files dockerfiles/ | grep -i dockerfile

Repository: wso2/docker-ei

Length of output: 1032


🌐 Web query:

WSO2 Micro Integrator 4.6.0 Java 25 support compatibility

💡 Result:

WSO2 Micro Integrator 4.6.0 does not officially support Java 25. Version 4.6.0 is currently in early pre-release stage (4.6.0-m1 milestone released 2026-02-06 and 4.6.0-alpha on 2026-02-17), with no official release notes or compatibility matrix available yet. No sources mention Java 25 support for this version. For context, stable releases support lower Java versions: - 4.4.0 (Feb 2025): Requires JDK 21 (official GitHub release notes). - 4.3.0: Requires JDK 17. Older compatibility docs list JDK 8/11 for prior versions, but these are outdated.

Citations:


🌐 Web query:

WSO2 Micro Integrator 4.6.0 prerequisites supported Java versions

💡 Result:

WSO2 Micro Integrator 4.6.0 supports Temurin JDK 21 and Temurin JDK 25, verified on RHEL 9 and RHEL 10.

Citations:


🏁 Script executed:

# Check the Alpine micro-integrator Dockerfile
head -60 dockerfiles/alpine/micro-integrator/Dockerfile | cat -n

Repository: wso2/docker-ei

Length of output: 2785


🏁 Script executed:

# Check the Rocky micro-integrator Dockerfile
head -60 dockerfiles/rocky/micro-integrator/Dockerfile | cat -n

Repository: wso2/docker-ei

Length of output: 3188


🌐 Web query:

GitHub wso2 product-micro-integrator issue 4678 Java 25 support

💡 Result:

GitHub issue #4678 in wso2/product-micro-integrator is titled "Verify OS, JDK, and DBMS compatibility for MI 4.6.0". It was opened on 2026-02-23 and plans to test WSO2 Micro Integrator (MI) 4.6.0 against various operating systems including Windows, Ubuntu, Red Hat Enterprise Linux, Rocky Linux, MacOS, and SUSE Linux. The issue does not specify JDK versions to be tested or mention Java 25. No sources confirm Java 25 support for WSO2 MI. The latest stable release, MI 4.4.0 (February 2025), requires JDK 21. Earlier versions require JDK 17 or lower. MI 4.6.0 appears to be in early development (m1 milestone seen in Maven artifacts from February 2026), with no released distributions or compatibility details available as of 2026-03-20. Java 25 support is not currently available in any WSO2 MI version.

Citations:


🌐 Web query:

WSO2 Micro Integrator 4.6.0 official release Java 25 compatibility statement

💡 Result:

No official release of WSO2 Micro Integrator 4.6.0 has been found as of 2026-03-20. The latest stable release is 4.4.0, which requires JDK 21. A 4.6.0-M1 milestone exists with "JDK 25 Support" announced, and a GitHub issue confirms testing of Temurin JDK 25 on RHEL 9/10 for MI 4.6.0 compatibility verification. Official documentation or release notes for full 4.6.0 Java 25 compatibility are not yet available; compatibility appears to be in development/testing phase.

Citations:


Do not ship MI 4.6.0 with Temurin 25—neither has official support combined.

MI 4.6.0 is not an official release (only a 4.6.0-M1 milestone exists as of March 2026), and Java 25 support for this version is unconfirmed and currently in the testing/verification phase (GitHub issue #4678). The latest stable release, MI 4.4.0, requires JDK 21.

Shipping an unreleased MI version paired with an unconfirmed Java runtime combination creates unquantified compatibility risk. Keep these Dockerfiles on Temurin 21 and land the Java 25 upgrade only after MI 4.6.0 is officially released with documented Java 25 support.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/Dockerfile` around lines 29 - 57, The
Dockerfile pins Temurin JDK 25 (ENV JAVA_VERSION=jdk-25.0.2+10 and the
OpenJDK25U... BINARY_URL/ESUM blocks) which is incompatible with the shipped MI
version; change the image to Temurin 21 by setting ENV JAVA_VERSION to the
appropriate jdk-21 value and replace the JDK25 download URLs and checksum
variables (BINARY_URL and ESUM referencing OpenJDK25U-jdk_...) with the
corresponding Temurin 21 Alpine binary URL and checksum for each ARCH (amd64 and
aarch64/arm64) so the Dockerfile downloads and verifies JDK 21 instead of JDK
25; ensure tar extraction and cleanup logic in the same RUN block remain
unchanged.

Comment on lines 62 to +63
LABEL maintainer="WSO2 Docker Maintainers <dev@wso2.org>" \
com.wso2.docker.source="https://github.com/wso2/docker-ei/releases/tag/v4.5.0.0"
com.wso2.docker.source="https://github.com/wso2/docker-ei/releases/tag/v4.6.0.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

find . -name "Dockerfile" -path "*/alpine/micro-integrator/*" | head -20

Repository: wso2/docker-ei

Length of output: 106


🏁 Script executed:

cat -n dockerfiles/alpine/micro-integrator/Dockerfile | sed -n '60,65p'

Repository: wso2/docker-ei

Length of output: 322


🌐 Web query:

site:github.com/wso2/docker-ei releases v4.6.0.0

💡 Result:

The query "releases v4.6.0.0" refers to UHD (USRP Hardware Driver) version 4.6.0.0 from Ettus Research / NI. Release date: November 14, 2024 (tag created around then, based on GitHub activity). Key highlights: - Phase repeatability, dual rate support, and lower sampling rates for the NI Ettus USRP X440. - macOS support: Monterey (12.6). Changelog includes: - CI improvements (build farm for Windows, deprecated ruamel.yaml fixes). - CMake fixes for make_x410 and make_x440 targets. - Debian copyright updates. - Documentation updates. - Various other fixes across components. Full release page: https://github.com/EttusResearch/uhd/releases/tag/v4.6.0.0 Assets available: 7 files (binaries for different platforms). This matches the exact version string v4.6.0.0, unlike other projects which use v4.6.0 without the patch zero.

Citations:


🌐 Web query:

wso2 docker-ei github releases

💡 Result:

The official GitHub repository for WSO2 docker-ei is https://github.com/wso2/docker-ei, which provides Docker and Docker Compose resources for WSO2 Enterprise Integrator (now primarily WSO2 Integration/Micro Integrator profiles). Releases page: https://github.com/wso2/docker-ei/releases (75 releases total, latest announced for WSO2 Integrator: MI 4.4.0). Recent tags include: - v6.6.0.7 (May 16, 2024): Upgrade kubernetes membership schema jar and update release tag versions. - v6.6.0.6 (Mar 18, 2024): Remove MySQL JDBC connector from docker images. - v7.0.0.6 (Jan 31, 2024): Update ubuntu docker files. - 4.2.x-alpine-upgrade-3.19.0 (Jan 3, 2024). - 4.0.0.5 (Dec 15, 2023). CHANGELOG: https://github.com/wso2/docker-ei/blob/master/CHANGELOG.md (tracks changes for 4.5.x and prior). Dockerfiles support Alpine, Ubuntu, CentOS for profiles like Micro Integrator 4.2.0, Streaming Integrator, etc. Build instructions in repo README and per-profile Dockerfiles (e.g., https://github.com/wso2/docker-ei/tree/master/dockerfiles/alpine/micro-integrator). No newer releases post-May 2024 evident as of 2026-03-20.

Citations:


🌐 Web query:

github.com/wso2/docker-ei/releases/tag/v4.6.0.0

💡 Result:

The specific GitHub release page https://github.com/wso2/docker-ei/releases/tag/v4.6.0.0 does not exist. No evidence of a release or tag named v4.6.0.0 was found in the wso2/docker-ei repository. The repository provides Dockerfiles and Docker Compose resources for building Docker images of WSO2 Enterprise Integrator (now evolved to WSO2 Integration, including Micro Integrator profiles like v4.2.x). Tags exist for versions such as v4.2.0.6, v4.1.0.6, v4.0.0.6, but none match v4.6.0.0 exactly. The highest v4.x tags are around v4.2.0.x (latest from Jan 2024). Older branches like 6.4.x exist for EI 6.4. WSO2 Enterprise Integrator (EI) has been succeeded by Micro Integrator (MI), with MI 4.2.0 being a recent version (2023-2024). Docker images are built from source using provided Dockerfiles rather than pre-built releases for many versions. Official pre-built images on Docker Hub (e.g., wso2/wso2ei-integrator) go up to 6.6.0 (about 6 years old). To use Docker for WSO2 Integration: - Clone https://github.com/wso2/docker-ei - Check out relevant branch/tag (e.g., v4.2.0.6) - Build using provided instructions in README.md

Citations:


Don't publish a dead com.wso2.docker.source label.

The value on line 63 points to https://github.com/wso2/docker-ei/releases/tag/v4.6.0.0, which does not exist. The v4.6.0.0 release tag is not present in the wso2/docker-ei repository. Either create the release before publishing or defer this label bump.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/alpine/micro-integrator/Dockerfile` around lines 62 - 63, The
Dockerfile LABEL sets com.wso2.docker.source to a non-existent release URL;
update or remove that label so it doesn't point to a dead tag. Locate the LABEL
block containing maintainer and com.wso2.docker.source and either change
com.wso2.docker.source to a valid existing release/tag URL (or a repository URL
that will exist), or remove the com.wso2.docker.source entry entirely (or defer
the version bump) before publishing.

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