diff --git a/.semaphore/cp_dockerfile_build.yml b/.semaphore/cp_dockerfile_build.yml
index 93859d6601..a40692aa14 100644
--- a/.semaphore/cp_dockerfile_build.yml
+++ b/.semaphore/cp_dockerfile_build.yml
@@ -25,7 +25,7 @@ global_job_config:
commands:
- checkout
- if [[ $SEMAPHORE_GIT_BRANCH =~ ^7\..* ]]; then sem-version java 8; else sem-version java 17; fi
- - sem-version python 3.9
+ - sem-version python 3.14
- . vault-setup
- . cache-maven restore
- pip install tox==3.28.0
diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml
index 08a785c442..2454c2490a 100644
--- a/.semaphore/semaphore.yml
+++ b/.semaphore/semaphore.yml
@@ -25,7 +25,7 @@ global_job_config:
commands:
- checkout
- if [[ $SEMAPHORE_GIT_BRANCH =~ ^7\..* ]]; then sem-version java 8; else sem-version java 17; fi
- - sem-version python 3.9
+ - sem-version python 3.14
- . vault-setup
- . cache-maven restore
- pip install tox==3.28.0
diff --git a/base/Dockerfile.ubi8 b/base/Dockerfile.ubi8
index d786e61379..724cfbd492 100644
--- a/base/Dockerfile.ubi8
+++ b/base/Dockerfile.ubi8
@@ -53,7 +53,6 @@ ENV CUB_CLASSPATH='"/usr/share/java/cp-base-new/*"'
ARG OPENSSL_VERSION=""
ARG WGET_VERSION=""
ARG NETCAT_VERSION=""
-ARG PYTHON39_VERSION=""
ARG TAR_VERSION=""
ARG PROCPS_VERSION=""
ARG KRB5_WORKSTATION_VERSION=""
@@ -66,8 +65,10 @@ ARG CURL_VERSION=""
# Temurin JDK version
ARG TEMURIN_JDK_VERSION=""
+# Python 3.14 Version (installed from source)
+ARG PYTHON314_VERSION="3.14.3"
+
# Python Module Versions
-ARG PYTHON_PIP_VERSION=""
ARG PYTHON_SETUPTOOLS_VERSION=""
# Confluent Docker Utils Version (Namely the tag or branch to grab from git to install)
@@ -84,15 +85,25 @@ gpgcheck=1 \n\
gpgkey=https://adoptium.jfrog.io/artifactory/api/gpg/key/public \n\
" > /etc/yum.repos.d/adoptium.repo
+# Install system packages and build dependencies for Python
RUN microdnf --nodocs install yum \
&& yum --nodocs update -y \
&& yum --nodocs install -y --setopt=install_weak_deps=False \
git \
+ gcc \
+ gcc-c++ \
+ make \
+ perl-IPC-Cmd \
+ openssl-devel \
+ openssl-libs \
+ ca-certificates \
+ bzip2-devel \
+ libffi-devel \
+ zlib-devel \
+ sqlite-devel \
"openssl${OPENSSL_VERSION}" \
"wget${WGET_VERSION}" \
"nmap-ncat${NETCAT_VERSION}" \
- "python39${PYTHON39_VERSION}" \
- "python39-pip${PYTHON_PIP_VERSION}" \
"tar${TAR_VERSION}" \
"procps-ng${PROCPS_VERSION}" \
"krb5-workstation${KRB5_WORKSTATION_VERSION}" \
@@ -106,11 +117,30 @@ RUN microdnf --nodocs install yum \
"libcurl${CURL_VERSION}" \
"findutils${FINDUTILS_VERSION}" \
"crypto-policies-scripts${CRYPTO_POLICIES_SCRIPTS_VERSION}" \
- "temurin-17-jdk${TEMURIN_JDK_VERSION}" "temurin-17-jre${TEMURIN_JDK_VERSION}" \
- && alternatives --set python /usr/bin/python3 \
- && python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \
+ "temurin-17-jdk${TEMURIN_JDK_VERSION}" "temurin-17-jre${TEMURIN_JDK_VERSION}"
+
+# Install Python 3.14 from source with SSL support
+RUN curl -O https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTHON314_VERSION}.tgz \
+ && tar -xzf Python-${PYTHON314_VERSION}.tgz \
+ && cd Python-${PYTHON314_VERSION} \
+ && ./configure --enable-optimizations \
+ --with-ensurepip=install \
+ --with-openssl=/usr \
+ --with-openssl-rpath=auto \
+ && make -j$(nproc) \
+ && make altinstall \
+ && cd .. \
+ && rm -rf Python-${PYTHON314_VERSION}* \
+ && ln -sf /usr/local/bin/python3.14 /usr/bin/python3 \
+ && ln -sf /usr/local/bin/python3.14 /usr/bin/python \
+ && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip3 \
+ && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip \
+ && python3 -c "import ssl; print('SSL module loaded successfully')"
+
+# Install Python packages and cleanup
+RUN python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \
&& python3 -m pip install --prefer-binary --prefix=/usr/local --upgrade "${PYTHON_CONFLUENT_DOCKER_UTILS_INSTALL_SPEC}" \
- && yum remove -y git \
+ && yum remove -y git gcc gcc-c++ make perl-IPC-Cmd openssl-devel bzip2-devel libffi-devel zlib-devel sqlite-devel \
&& yum clean all \
&& rm -rf /tmp/* \
&& mkdir -p /etc/confluent/docker /usr/logs \
diff --git a/base/pom.xml b/base/pom.xml
index dc662e3459..1fa679b5c0 100644
--- a/base/pom.xml
+++ b/base/pom.xml
@@ -126,7 +126,7 @@
-${ubi8-minimal.openssl.version}
-${ubi8-minimal.wget.version}
-${ubi8-minimal.nmap-ncat.version}
- -${ubi8-minimal.python39.version}
+ ${python314.version}
-${ubi8-minimal.tar.version}
-${ubi8-minimal.procps-ng.version}
-${ubi8-minimal.krb5-workstation.version}
@@ -138,7 +138,6 @@
-${ubi8-minimal.temurin-17-jdk.version}
-${ubi8-minimal.findutils.version}
-${ubi8-minimal.crypto-policies-scripts.version}
- -${ubi8-minimal.python39-pip.version}
==${python.setuptools.version}
${git-repo.confluent-docker-utils.tag}
${docker.skip-security-update-check}
@@ -158,7 +157,7 @@
-${ubi8-minimal.openssl.version}
-${ubi8-minimal.wget.version}
-${ubi8-minimal.nmap-ncat.version}
- -${ubi8-minimal.python39.version}
+ ${python314.version}
-${ubi8-minimal.tar.version}
-${ubi8-minimal.procps-ng.version}
-${ubi8-minimal.krb5-workstation.version}
@@ -170,7 +169,6 @@
-${ubi8-minimal.findutils.version}
-${ubi8-minimal.crypto-policies-scripts.version}
-${ubi8-minimal.temurin-17-jdk.version}
- -${ubi8-minimal.python39-pip.version}
==${python.setuptools.version}
${git-repo.confluent-docker-utils.tag}
${docker.skip-security-update-check}
@@ -182,4 +180,4 @@
-
+
\ No newline at end of file
diff --git a/base/requirements.txt b/base/requirements.txt
index 614c4c93e0..220e9b56c7 100644
--- a/base/requirements.txt
+++ b/base/requirements.txt
@@ -1 +1 @@
-git+https://github.com/confluentinc/confluent-docker-utils@v0.0.162
+git+https://github.com/confluentinc/confluent-docker-utils@replace-docker-compose-with-sdk
diff --git a/base/tox.ini b/base/tox.ini
index af5b6fe10e..0e9ed0ee00 100644
--- a/base/tox.ini
+++ b/base/tox.ini
@@ -6,10 +6,10 @@ toxworkdir = /var/tmp
deps =
-rrequirements.txt
flake8
- pytest == 4.6.4
- pytest-xdist == 1.29.0
- pytest-cov == 2.7.1
- sphinx!=1.2b2,<2.0.0
+ pytest >= 8.0.0
+ pytest-xdist >= 3.0.0
+ pytest-cov >= 4.0.0
+ sphinx >= 7.0.0
install_command = pip install -U {packages}
recreate = True
skipsdist = True
diff --git a/pom.xml b/pom.xml
index 6df9e95166..51c2ca4655 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,7 @@
1.1.1k-14.el8_10
1.19.5-12.el8_10
7.92-2.el8_10
- 3.9.25-2.module+el8.10.0+23718+1842ae33
+ 3.14.3
1.30-11.el8_10
3.3.15-14.el8
1.18.2-32.el8_10
@@ -83,13 +83,12 @@
4.6.0-24.el8_10
20230731-1.git3177e06.el8
17.0.18.0.0.8-0
- 20.2.4-9.module+el8.10.0+21329+8d76b841
80.9.0
- v0.0.165
+ replace-docker-compose-with-sdk
1.25.7-trixie