ClickHouse/docker/test/integration/runner/Dockerfile

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

143 lines
4.2 KiB
Docker
Raw Normal View History

2021-09-06 11:33:39 +00:00
# docker build -t clickhouse/integration-tests-runner .
2023-06-21 14:33:43 +00:00
FROM ubuntu:22.04
# ARG for quick switch to a given ubuntu mirror
ARG apt_archive="http://archive.ubuntu.com"
2022-06-28 17:35:20 +00:00
RUN sed -i "s|http://archive.ubuntu.com|$apt_archive|g" /etc/apt/sources.list
2021-08-23 18:01:19 +00:00
2019-05-21 06:17:46 +00:00
RUN apt-get update \
&& env DEBIAN_FRONTEND=noninteractive apt-get install --yes \
2023-01-07 00:45:54 +00:00
adduser \
ca-certificates \
bash \
btrfs-progs \
e2fsprogs \
iptables \
xfsprogs \
tar \
pigz \
wget \
git \
iproute2 \
cgroupfs-mount \
2020-10-02 16:54:07 +00:00
python3-pip \
2018-12-10 09:40:57 +00:00
tzdata \
2019-01-30 09:43:00 +00:00
libicu-dev \
bsdutils \
curl \
2020-10-02 16:54:07 +00:00
python3-pika \
liblua5.1-dev \
luajit \
libssl-dev \
libcurl4-openssl-dev \
2019-12-13 13:56:53 +00:00
gdb \
default-jdk \
software-properties-common \
libkrb5-dev \
krb5-user \
2021-03-12 09:05:40 +00:00
g++ \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /var/cache/debconf /tmp/*
2022-03-14 12:46:45 +00:00
ENV TZ=Etc/UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV DOCKER_CHANNEL stable
2023-07-03 16:14:02 +00:00
# Unpin the docker version after the release 24.0.3 is released
# https://github.com/moby/moby/issues/45770#issuecomment-1618255130
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
&& add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -c -s) ${DOCKER_CHANNEL}" \
&& apt-get update \
&& env DEBIAN_FRONTEND=noninteractive apt-get install --yes \
2023-07-03 16:14:02 +00:00
docker-ce='5:23.*' \
&& rm -rf \
/var/lib/apt/lists/* \
/var/cache/debconf \
/tmp/* \
2023-06-21 14:33:43 +00:00
&& apt-get clean \
&& dockerd --version; docker --version
# kazoo 2.10.0 is broken
# https://s3.amazonaws.com/clickhouse-test-reports/59337/524625a1d2f4cc608a3f1059e3df2c30f353a649/integration_tests__asan__analyzer__[5_6].html
RUN python3 -m pip install --no-cache-dir \
2024-01-22 23:19:31 +00:00
PyMySQL==1.1.0 \
asyncio==3.4.3 \
2023-06-21 14:33:43 +00:00
avro==1.10.2 \
2024-01-22 23:19:31 +00:00
azure-storage-blob==12.19.0 \
boto3==1.34.24 \
cassandra-driver==3.29.0 \
confluent-kafka==2.3.0 \
2023-06-21 14:33:43 +00:00
delta-spark==2.3.0 \
2024-01-22 23:19:31 +00:00
dict2xml==1.7.4 \
dicttoxml==1.7.16 \
docker==6.1.3 \
docker-compose==1.29.2 \
2024-01-22 23:19:31 +00:00
grpcio==1.60.0 \
grpcio-tools==1.60.0 \
kafka-python==2.0.2 \
lz4==4.3.3 \
minio==7.2.3 \
nats-py==2.6.0 \
protobuf==4.25.2 \
kazoo==2.9.0 \
2023-06-21 14:33:43 +00:00
psycopg2-binary==2.9.6 \
2024-01-22 23:19:31 +00:00
pyhdfs==0.3.1 \
2021-12-10 14:58:17 +00:00
pymongo==3.11.0 \
2023-06-21 14:33:43 +00:00
pyspark==3.3.2 \
2024-01-22 23:19:31 +00:00
pytest==7.4.4 \
pytest-order==1.0.0 \
2024-01-22 23:19:31 +00:00
pytest-random==0.2 \
pytest-repeat==0.9.3 \
pytest-timeout==2.2.0 \
pytest-xdist==3.5.0 \
2024-01-17 20:13:15 +00:00
pytest-reportlog==0.4.0 \
2024-01-22 23:19:31 +00:00
pytz==2023.3.post1 \
2023-08-01 13:47:35 +00:00
pyyaml==5.3.1 \
2024-01-22 23:19:31 +00:00
redis==5.0.1 \
requests-kerberos==0.14.0 \
2023-06-21 14:33:43 +00:00
tzlocal==2.1 \
2024-01-22 23:19:31 +00:00
retry==0.9.2 \
bs4==0.0.2 \
lxml==5.1.0 \
urllib3==2.0.7 \
jwcrypto==1.5.6
2023-08-31 12:34:41 +00:00
# bs4, lxml are for cloud tests, do not delete
2023-06-21 14:33:43 +00:00
# Hudi supports only spark 3.3.*, not 3.4
RUN curl -fsSL -O https://archive.apache.org/dist/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz \
&& tar xzvf spark-3.3.2-bin-hadoop3.tgz -C / \
&& rm spark-3.3.2-bin-hadoop3.tgz
2023-04-13 14:56:11 +00:00
# download spark and packages
# if you change packages, don't forget to update them in tests/integration/helpers/cluster.py
RUN packages="org.apache.hudi:hudi-spark3.3-bundle_2.12:0.13.0,\
io.delta:delta-core_2.12:2.3.0,\
org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:1.1.0" \
&& /spark-3.3.2-bin-hadoop3/bin/spark-shell --packages "$packages" > /dev/null \
&& find /root/.ivy2/ -name '*.jar' -exec ln -sf {} /spark-3.3.2-bin-hadoop3/jars/ \;
RUN set -x \
&& addgroup --system dockremap \
2023-06-21 14:33:43 +00:00
&& adduser --system dockremap \
&& adduser dockremap dockremap \
&& echo 'dockremap:165536:65536' >> /etc/subuid \
2023-06-21 14:33:43 +00:00
&& echo 'dockremap:165536:65536' >> /etc/subgid
COPY modprobe.sh /usr/local/bin/modprobe
COPY dockerd-entrypoint.sh /usr/local/bin/
COPY misc/ /misc/
# Same options as in test/base/Dockerfile
# (in case you need to override them in tests)
2023-08-04 21:26:52 +00:00
ENV TSAN_OPTIONS='halt_on_error=1 abort_on_error=1 history_size=7 memory_limit_mb=46080 second_deadlock_stack=1'
ENV UBSAN_OPTIONS='print_stacktrace=1'
ENV MSAN_OPTIONS='abort_on_error=1 poison_in_dtor=1'
EXPOSE 2375
ENTRYPOINT ["dockerd-entrypoint.sh"]
# To pass additional arguments (i.e. list of tests) use PYTEST_ADDOPTS
CMD ["sh", "-c", "pytest"]