Files
Nikita FomichevandClaude Sonnet 4.6 d3084071b0 Switch test Docker images to Python 3.13
Python 3.14 had too few pre-built wheels (cp314) to be practical.
Python 3.13 has broad wheel availability with only minor version bumps needed.

Changes:
- Install `python3.13` from deadsnakes PPA in `test-base` (with pip via
  `get-pip.py`)
- Remove `python3`/`python3-pip` apt packages from child images (fuzzer,
  integration/base, integration/runner, stateless-test, performance-comparison)
  to avoid conflicts
- Use `python3.13 -m pip install` explicitly in all Dockerfiles
- Update `integration/runner/requirements.txt`: bump `cassandra-driver`
  (3.29.0→3.29.3), `grpcio`/`grpcio-tools` (1.60.0→1.66.2), `lxml`
  (5.1.0→5.3.0), `psycopg2-binary` (2.9.6→2.9.10) — all minimum versions
  with cp313 wheels
- Update `performance-comparison/requirements.txt`: bump `numpy`
  (1.26.3→2.1.0) and `scipy` (1.12.0→1.14.1)
- Update LLVM snapshot GPG key hash (key was rotated)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-08 18:06:00 +01:00

83 lines
2.7 KiB
Docker

# rebuild in #33610
# docker build -t clickhouse/integration-test .
ARG FROM_TAG=latest
FROM clickhouse/test-base:$FROM_TAG
SHELL ["/bin/bash", "-c"]
RUN apt-get update \
&& env DEBIAN_FRONTEND=noninteractive apt-get -y install \
bsdutils \
curl \
default-jre \
g++ \
iproute2 \
krb5-user \
libicu-dev \
libsqlite3-dev \
libsqliteodbc \
lsof \
lz4 \
odbc-postgresql \
odbcinst \
rpm2cpio \
sqlite3 \
tar \
tzdata \
unixodbc \
libcurl4-openssl-dev \
libssl-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /var/cache/debconf /tmp/*
COPY requirements.txt /
RUN python3.13 -m pip install --no-cache-dir -r requirements.txt && rm -rf /root/.cache/pip
# Architecture of the image when BuildKit/buildx is used
ARG TARGETARCH
# Install MySQL ODBC driver from RHEL rpm
# For reference https://downloads.mysql.com/archives/c-odbc/ RHEL
RUN arch=${TARGETARCH:-amd64} \
&& case $arch in \
amd64) rarch=x86_64 ;; \
arm64) rarch=aarch64 ;; \
esac \
&& cd /tmp \
&& curl -o mysql-odbc.rpm "https://cdn.mysql.com/archives/mysql-connector-odbc-8.0/mysql-connector-odbc-8.0.32-1.el9.${rarch}.rpm" \
&& rpm2archive mysql-odbc.rpm \
&& tar xf mysql-odbc.rpm.tgz -C / ./usr/lib64/ \
&& rm mysql-odbc.rpm mysql-odbc.rpm.tgz \
&& ODBC_DIR=$(dpkg -L odbc-postgresql | rg '^/usr/lib/.*-linux-gnu/odbc$') \
&& ln -s /usr/lib64/libmyodbc8a.so "$ODBC_DIR" \
&& ln -s /usr/lib64/libmyodbc8a.so "$ODBC_DIR"/libmyodbc.so
# Unfortunately this is required for a single test for conversion data from zookeeper to clickhouse-keeper.
# ZooKeeper is not started by default, but consumes some space in containers.
# 777 perms used to allow anybody to start/stop ZooKeeper
ENV ZOOKEEPER_VERSION='3.6.3'
RUN curl "https://archive.apache.org/dist/zookeeper/zookeeper-${ZOOKEEPER_VERSION}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz" | \
tar -C opt -zxv && \
mv /opt/apache-zookeeper-${ZOOKEEPER_VERSION}-bin /opt/zookeeper && \
chmod -R 777 /opt/zookeeper && \
echo $'tickTime=2500 \n\
tickTime=2500 \n\
dataDir=/zookeeper \n\
clientPort=2181 \n\
maxClientCnxns=80' > /opt/zookeeper/conf/zoo.cfg && \
mkdir /zookeeper && \
chmod -R 777 /zookeeper
ENV TZ=Etc/UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY --from=clickhouse/cctools:859fb360308eb8ac47ad /opt/gdb /opt/gdb
ENV PATH="/opt/gdb/bin:${PATH}"
COPY --from=clickhouse/cctools:859fb360308eb8ac47ad \
/opt/openssl-fips/openssl.cnf \
/opt/openssl-fips/fipsmodule.cnf \
/opt/openssl-fips/fips.so \
\
/etc/ssl/