KAFKA-19501 Update OpenJDK base image from buster to bullseye (#20165)
CI / build (push) Waiting to run Details

The changes update the OpenJDK base image from 17-buster to 17-bullseye:
- Updates tests/docker/Dockerfile to use openjdk:17-bullseye instead of
openjdk:17-buster
  - Updates tests/docker/ducker-ak script to use the new default image
- Updates documentation in tests/README.md with the new image name
examples

Reviewers: Federico Valeri <fedevaleri@gmail.com>, TengYao Chi
<kitingiao@gmail.com>, Ken Huang <s7133700@gmail.com>, Chia-Ping Tsai
<chia7712@gmail.com>
This commit is contained in:
Tsung-Han Ho (Miles Ho) 2025-07-17 03:27:07 +08:00 committed by GitHub
parent e3276ae029
commit 70824be92a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 7 deletions

View File

@ -49,12 +49,13 @@ TC_PATHS="tests/kafkatest/tests/streams/streams_upgrade_test.py::StreamsUpgradeT
```
* Run tests with a specific image name
```
image_name="ducker-ak-openjdk:17-buster" bash tests/docker/run_tests.sh
image_name="ducker-ak-openjdk:17" bash tests/docker/run_tests.sh
```
* Run tests with a different JVM
```
bash tests/docker/ducker-ak up -j 'openjdk:17-buster'; tests/docker/run_tests.sh
bash tests/docker/ducker-ak up -j '<JDK_IMAGE>'; tests/docker/run_tests.sh
```
You can customize the OpenJDK base image using the `-j` or `--jdk` parameter, otherwise a default value will be used.
* Remove ducker-ak containers
```
bash tests/docker/ducker-ak down -f

View File

@ -13,9 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# The base image of openjdk:17 is typically oraclelinux:8-slim, which doesn't include apt-get.
# Therefore, use openjdk:17-buster instead.
ARG jdk_version=openjdk:17-buster
ARG jdk_version
FROM $jdk_version AS build-native-image
WORKDIR /build

View File

@ -45,7 +45,9 @@ docker_run_memory_limit="2000m"
default_num_nodes=14
# The default OpenJDK base image.
default_jdk="openjdk:17-buster"
# The base image of openjdk:17 is typically oraclelinux:8-slim, which doesn't include apt-get.
# Therefore, use openjdk:17-bullseye instead.
default_jdk="openjdk:17-bullseye"
# The default ducker-ak image name.
default_image_name="ducker-ak"
@ -70,7 +72,7 @@ help|-h|--help
Display this help message
up [-n|--num-nodes NUM_NODES] [-f|--force] [docker-image]
[-C|--custom-ducktape DIR] [-e|--expose-ports ports] [--ipv6]
[-C|--custom-ducktape DIR] [-e|--expose-ports ports] [-j|--jdk JDK_VERSION] [--ipv6]
Bring up a cluster with the specified amount of nodes (defaults to ${default_num_nodes}).
The docker image name defaults to ${default_image_name}. If --force is specified, we will
attempt to bring up an image even some parameters are not valid.
@ -84,6 +86,9 @@ up [-n|--num-nodes NUM_NODES] [-f|--force] [docker-image]
or a combination of port/port-range separated by comma (like 2181,9092 or 2181,5005-5008).
By default no port is exposed. See README.md for more detail on this option.
If -j|--jdk is specified, you can customize the OpenJDK base image used for building
the ducker container. Defaults to ${default_jdk}. Example: -j openjdk:17-bullseye
If --ipv6 is specified, we will create a Docker network with IPv6 enabled.
Note that port 5678 will be automatically exposed for ducker01 node and will be mapped to 5678