diff --git a/tests/README.md b/tests/README.md index 7a1d4e733945b..a64946c892a71 100644 --- a/tests/README.md +++ b/tests/README.md @@ -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 ''; 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 diff --git a/tests/docker/Dockerfile b/tests/docker/Dockerfile index 87078db195b92..01c1a0533d3b1 100644 --- a/tests/docker/Dockerfile +++ b/tests/docker/Dockerfile @@ -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 diff --git a/tests/docker/ducker-ak b/tests/docker/ducker-ak index 05af5ac9bb122..68aed30923f96 100755 --- a/tests/docker/ducker-ak +++ b/tests/docker/ducker-ak @@ -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