-
Notifications
You must be signed in to change notification settings - Fork 13.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KAFKA-9857:Failed to build image ducker-ak-openjdk-8 on arm #8489
KAFKA-9857:Failed to build image ducker-ak-openjdk-8 on arm #8489
Conversation
The default OpenJDK base image is openjdk:8. When building image on arm, no matching manifest for linux/arm64/v8 in the manifest list entries error will occur. For arm, the default OpenJDK should be set to arm64v8/openjdk:8 Change-Id: Ib450a36b3977a167743c24476ec1810f4830b66b Signed-off-by: Jiamei Xie <jiamei.xie@arm.com>
@guozhangwang @ijuma @junrao PTAL, thanks |
@cmccabe : Does this look good to you? Thanks. |
This looks reasonable. What testing have we done so far? |
@cmccabe I run it on arm, it works fine. |
@cmccabe I got some failures by running "bash tests/docker/run_tests.sh" on ARM, but most of it can be run successfully after some modification, except some tests related to version compatibility. Following is the summary:
|
Since Java 8 is EOL, why not upgrade to openjdk 11? |
The default OpenJDK base image is openjdk:8. When building image on arm, no matching manifest for linux/arm64/v8 in the manifest list entries error will occur. For arm, the default OpenJDK should be set to arm64v8/openjdk:8. Java 8 is end of life, so upgrade to openjdk 11. Change-Id: Ib450a36b3977a167743c24476ec1810f4830b66b Signed-off-by: Jiamei Xie <jiamei.xie@arm.com>
@OneCricketeer Yes, you're right. I recommitted the pr and upgraded openjdk 8 to openjdk 11. |
@@ -42,7 +42,14 @@ docker_run_memory_limit="2000m" | |||
default_num_nodes=14 | |||
|
|||
# The default OpenJDK base image. | |||
default_jdk="openjdk:8" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, you could've kept this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But 11
tests/docker/ducker-ak
Outdated
default_jdk="openjdk:8" | ||
case "$(uname -m)" in | ||
aarch64) | ||
default_jdk="arm64v8/openjdk:11" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then done default_jdk=arm64v8/${default_jdk}
tests/docker/ducker-ak
Outdated
default_jdk="arm64v8/openjdk:11" | ||
;; | ||
*) | ||
default_jdk="openjdk:11" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then the wild card wouldn't be necessary
The default OpenJDK base image is openjdk:8. When building image on arm, no matching manifest for linux/arm64/v8 in the manifest list entries error will occur. For arm, the default OpenJDK should be set to arm64v8/openjdk:8. Java 8 is end of life, so upgrade to openjdk 11. Openjdk:11 is a multi-arch image. Change-Id: Ib450a36b3977a167743c24476ec1810f4830b66b Signed-off-by: Jiamei Xie <jiamei.xie@arm.com>
@OneCricketeer I tested just now. Openjdk:11 is a multi-arch. X86 and arm use the same image name. |
@OneCricketeer Openjdk:11 is multi-arch, and openjdk:8 is not multi-arch. It's ok to run command "docker run -it openjdk:11 bash" on both arm and x86, while running command "docker run -it openjdk:8 bash" will bring an error. |
@OneCricketeer So if update to OpenJDK 11, there is no need to set default_jdk according to machine architecture. Thanks for your reminding |
@cmccabe I updated it to openjdk:11. Is that ok? |
@cmccabe What tests should be done? Thanks |
there is an existent bug after updating base image from openjdk:8 to openjdk:11 (see #9324). feel free to merge the fix to your PR :) |
…openjdk:11. Merge remote-tracking branch 'chia/MINOR-9324' into Failed-to-build-image-ducker-ak-openjdk-8-on-arm
@chia7712 Thanks. I have merged it. |
Honeycomb doesn't directly have an interest in this as we use Confluent's packages, but we do run Confluent's Kafka distro on ARM64 (successfully). |
Really appreciated for the feedback, @lizthegrey . Glad to know there are actual use cases to run and test Kafka on Arm64, and it seems that merging this will help users/developers from community perpective. |
I've tested this PR on my ARM64 machine and at TravisCI. At both environments it fails with:
|
I've created #9794. It applies the changes from this PR and also fixes the issue in the comment above. |
The default OpenJDK base image is openjdk:8. When building image on arm, no
matching manifest for linux/arm64/v8 in the manifest list entries error will
occur. For arm, the default OpenJDK should be set to arm64v8/openjdk:8
Change-Id: Ib450a36b3977a167743c24476ec1810f4830b66b
Signed-off-by: Jiamei Xie jiamei.xie@arm.com
More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)