From 9483d1bb85f4c22dc3af2ca9a729eea835bfb996 Mon Sep 17 00:00:00 2001 From: arvindksi274-ksolves Date: Tue, 24 Feb 2026 18:33:10 +0530 Subject: [PATCH 1/2] CASSANDRA-20181: Fix cqlsh docker build failure on 4.1 --- pylib/Dockerfile.ubuntu.py3 | 4 ++-- pylib/Dockerfile.ubuntu.py311 | 13 +++++++++++++ pylib/Dockerfile.ubuntu.py38 | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 pylib/Dockerfile.ubuntu.py311 diff --git a/pylib/Dockerfile.ubuntu.py3 b/pylib/Dockerfile.ubuntu.py3 index dbf9cc916a19..360de9dd6243 100644 --- a/pylib/Dockerfile.ubuntu.py3 +++ b/pylib/Dockerfile.ubuntu.py3 @@ -14,5 +14,5 @@ # See the License for the specific language governing permissions and # limitations under the License. # -FROM ubuntu:bionic -RUN apt-get update && apt-get install -y python3-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1 +FROM ubuntu:focal +RUN apt-get update && apt-get install -y python3-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3 1 diff --git a/pylib/Dockerfile.ubuntu.py311 b/pylib/Dockerfile.ubuntu.py311 new file mode 100644 index 000000000000..aa7c84cf58e7 --- /dev/null +++ b/pylib/Dockerfile.ubuntu.py311 @@ -0,0 +1,13 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM ubuntu:jammy +RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y gnupg2 software-properties-common && add-apt-repository -y ppa:deadsnakes/ppa && apt-get update && apt-get install -y python3.11-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1 diff --git a/pylib/Dockerfile.ubuntu.py38 b/pylib/Dockerfile.ubuntu.py38 index 9697baee35f5..bcd81413654b 100644 --- a/pylib/Dockerfile.ubuntu.py38 +++ b/pylib/Dockerfile.ubuntu.py38 @@ -9,5 +9,5 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -FROM ubuntu:bionic +FROM ubuntu:focal RUN apt-get update && apt-get install -y python3.8-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 From 177064f5e8c6f90609e690e8a6ce5d9ec5e2cafd Mon Sep 17 00:00:00 2001 From: arvindksi274-ksolves Date: Thu, 26 Feb 2026 15:42:05 +0530 Subject: [PATCH 2/2] CASSANDRA-20181: Remove obsolete cqlsh Dockerfiles and update README --- pylib/Dockerfile.ubuntu.py3 | 18 ------------------ pylib/Dockerfile.ubuntu.py311 | 13 ------------- pylib/Dockerfile.ubuntu.py37 | 13 ------------- pylib/Dockerfile.ubuntu.py38 | 13 ------------- pylib/README.asc | 21 --------------------- 5 files changed, 78 deletions(-) delete mode 100644 pylib/Dockerfile.ubuntu.py3 delete mode 100644 pylib/Dockerfile.ubuntu.py311 delete mode 100644 pylib/Dockerfile.ubuntu.py37 delete mode 100644 pylib/Dockerfile.ubuntu.py38 diff --git a/pylib/Dockerfile.ubuntu.py3 b/pylib/Dockerfile.ubuntu.py3 deleted file mode 100644 index 360de9dd6243..000000000000 --- a/pylib/Dockerfile.ubuntu.py3 +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -FROM ubuntu:focal -RUN apt-get update && apt-get install -y python3-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3 1 diff --git a/pylib/Dockerfile.ubuntu.py311 b/pylib/Dockerfile.ubuntu.py311 deleted file mode 100644 index aa7c84cf58e7..000000000000 --- a/pylib/Dockerfile.ubuntu.py311 +++ /dev/null @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM ubuntu:jammy -RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y gnupg2 software-properties-common && add-apt-repository -y ppa:deadsnakes/ppa && apt-get update && apt-get install -y python3.11-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1 diff --git a/pylib/Dockerfile.ubuntu.py37 b/pylib/Dockerfile.ubuntu.py37 deleted file mode 100644 index a12538409c61..000000000000 --- a/pylib/Dockerfile.ubuntu.py37 +++ /dev/null @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM ubuntu:bionic -RUN apt-get update && apt-get install -y python3.7-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 diff --git a/pylib/Dockerfile.ubuntu.py38 b/pylib/Dockerfile.ubuntu.py38 deleted file mode 100644 index bcd81413654b..000000000000 --- a/pylib/Dockerfile.ubuntu.py38 +++ /dev/null @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM ubuntu:focal -RUN apt-get update && apt-get install -y python3.8-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 diff --git a/pylib/README.asc b/pylib/README.asc index 53c40ea4b064..269b6e6f2a14 100644 --- a/pylib/README.asc +++ b/pylib/README.asc @@ -5,7 +5,6 @@ This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this di == Requirements . Python 3.6+ (for cqlsh) . virtualenv -. Docker (optional) == Running tests @@ -22,23 +21,3 @@ You can run tests with a local Cassandra server simply by - In order to run tests in a virtual environment for cqlshlib, run cassandra-cqlsh-tests.sh in this directory. It will automatically setup a virtualenv with the appropriate version of Python and run tests inside it. - -There are Dockerfiles that can be used to test whether cqlsh works with a default, barebones -Python installation. Assuming Cassandra's source is checked out at `$CASSANDRA_DIR`. To test, first -build the Docker image containing the barebones Python installation - - - $ docker build . --file Dockerfile.ubuntu.py3 -t ubuntu-lts-py3 - -Next, run cqlsh inside the newly built image - - - $ docker run -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh host.docker.internal - -If `host.docker.internal` isn't supported, then you can use `--net="host"` with `docker run`: - - $ docker run --net="host" -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh - -This will try to spawn a cqlsh instance inside the Docker container running Ubuntu LTS (18.04) -with minimal Python installation. It will try to connect to the Cassandra instance running on the -Docker host at port 9042. If you have Cassandra running elsewhere, replace host.docker.internal -with the IP / hostname as usual. Please ensure that the IP / host is accessible from _within_ the -Docker container.