aboutsummaryrefslogtreecommitdiff
path: root/tools/dockerfile/test
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dockerfile/test')
-rw-r--r--tools/dockerfile/test/bazel.current_version2
-rw-r--r--tools/dockerfile/test/bazel/Dockerfile13
-rw-r--r--tools/dockerfile/test/bazel_arm64.current_version2
-rw-r--r--tools/dockerfile/test/bazel_arm64/Dockerfile2
-rw-r--r--tools/dockerfile/test/binder_transport_apk.current_version2
-rw-r--r--tools/dockerfile/test/binder_transport_apk/Dockerfile2
-rw-r--r--tools/dockerfile/test/cxx_clang_15_x64.current_version1
-rw-r--r--tools/dockerfile/test/cxx_clang_17_x64.current_version1
-rw-r--r--tools/dockerfile/test/cxx_clang_17_x64/Dockerfile (renamed from tools/dockerfile/test/cxx_clang_15_x64/Dockerfile)2
-rw-r--r--tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version1
-rw-r--r--tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile125
-rw-r--r--tools/dockerfile/test/python_debian11_default_arm64.current_version2
-rw-r--r--tools/dockerfile/test/python_debian11_default_arm64/Dockerfile4
-rw-r--r--tools/dockerfile/test/python_debian11_default_x64.current_version2
-rw-r--r--tools/dockerfile/test/python_debian11_default_x64/Dockerfile55
-rw-r--r--tools/dockerfile/test/sanity.current_version2
-rw-r--r--tools/dockerfile/test/sanity/Dockerfile6
17 files changed, 185 insertions, 39 deletions
diff --git a/tools/dockerfile/test/bazel.current_version b/tools/dockerfile/test/bazel.current_version
index 93a0886478..972682e152 100644
--- a/tools/dockerfile/test/bazel.current_version
+++ b/tools/dockerfile/test/bazel.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:d64f53cefe4fe5908e00130a7a0dbe6253d9f0b8@sha256:d3291d3129469bd4bdd58b5dd81eb6c5668548a4d6e6c8e952fb372d1874b078 \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:cacad91746cd598d8756de89b912be291de1f019@sha256:32bde2dcb2087f2a32afab59e4dfedf7e8c76a52c69881f63a239d311f0e5ecf \ No newline at end of file
diff --git a/tools/dockerfile/test/bazel/Dockerfile b/tools/dockerfile/test/bazel/Dockerfile
index ab02711451..c52f8313cb 100644
--- a/tools/dockerfile/test/bazel/Dockerfile
+++ b/tools/dockerfile/test/bazel/Dockerfile
@@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 6.3.2
+ENV BAZEL_VERSION 6.4.0
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
@@ -65,6 +65,17 @@ RUN BAZEL_ARCH_SUFFIX="$(uname -m | sed s/aarch64/arm64/)" \
RUN git config --global --add safe.directory '*'
RUN git config --global protocol.file.allow always
+#=================
+# Setup git to access working directory across docker boundary.
+# This avoids the "fatal: detected dubious ownership in repository XYZ"
+# git error. Using "--system" makes the setting work
+# for all users or even current user is not properly defined
+# (which can happen e.g. inside execution environment
+# of a bazel action)
+
+RUN git config --system --add safe.directory '*'
+RUN git config --system protocol.file.allow always
+
RUN apt-get install -y gdb
diff --git a/tools/dockerfile/test/bazel_arm64.current_version b/tools/dockerfile/test/bazel_arm64.current_version
index 242040883d..71008d44e6 100644
--- a/tools/dockerfile/test/bazel_arm64.current_version
+++ b/tools/dockerfile/test/bazel_arm64.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:b80154c9d14839d4e387155401c5204f2cc09262@sha256:1b7200c85ba8bc10529e1867a27ee81ad303ec8c8efec8bbc5863b4ee8ac6d03 \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:2638335cbe0cbd8f77c54affdf0e4b36f7741785@sha256:3b087387c44dee405c1b80d6ff50994e6d8e90a4ef67cc94b4291f1a29c0ef41 \ No newline at end of file
diff --git a/tools/dockerfile/test/bazel_arm64/Dockerfile b/tools/dockerfile/test/bazel_arm64/Dockerfile
index 104994c570..afc341b6ad 100644
--- a/tools/dockerfile/test/bazel_arm64/Dockerfile
+++ b/tools/dockerfile/test/bazel_arm64/Dockerfile
@@ -97,7 +97,7 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 6.3.2
+ENV BAZEL_VERSION 6.4.0
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
diff --git a/tools/dockerfile/test/binder_transport_apk.current_version b/tools/dockerfile/test/binder_transport_apk.current_version
index caf0273c2c..439b81ec9d 100644
--- a/tools/dockerfile/test/binder_transport_apk.current_version
+++ b/tools/dockerfile/test/binder_transport_apk.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:86b356231e6878000efa10a7d471ab7b332a92de@sha256:38c1da5544c717ef0e3d3492833b0fd1ce5c70fbe71eea8a9bfb0ab0b1217f1b \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:783671f597502a2dc3ebf190d52d55be70836a33@sha256:bf60a187cd2ce1abe8b4f32ae6479040a72ca6aa789cd5ab509f60ceb37a41f9 \ No newline at end of file
diff --git a/tools/dockerfile/test/binder_transport_apk/Dockerfile b/tools/dockerfile/test/binder_transport_apk/Dockerfile
index d82114053d..c0644d3285 100644
--- a/tools/dockerfile/test/binder_transport_apk/Dockerfile
+++ b/tools/dockerfile/test/binder_transport_apk/Dockerfile
@@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 6.3.2
+ENV BAZEL_VERSION 6.4.0
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
diff --git a/tools/dockerfile/test/cxx_clang_15_x64.current_version b/tools/dockerfile/test/cxx_clang_15_x64.current_version
deleted file mode 100644
index b8e66d280d..0000000000
--- a/tools/dockerfile/test/cxx_clang_15_x64.current_version
+++ /dev/null
@@ -1 +0,0 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_15_x64:3f2c40d2de5d4d986d17381920927a9d53760e19@sha256:c41629b44bfcdbc644ac90c3de4ca9f4d5a4fbc7daea8be2c5d6e4942acf6743 \ No newline at end of file
diff --git a/tools/dockerfile/test/cxx_clang_17_x64.current_version b/tools/dockerfile/test/cxx_clang_17_x64.current_version
new file mode 100644
index 0000000000..bf3e6fdb51
--- /dev/null
+++ b/tools/dockerfile/test/cxx_clang_17_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_17_x64:50db090958b219aa79e86c6b842f76269ca89db7@sha256:05c948d794b7b4cf1b3c45106a1332b80808c7cd7f56aeb9a8ece63641f3d41d \ No newline at end of file
diff --git a/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile b/tools/dockerfile/test/cxx_clang_17_x64/Dockerfile
index a4143f48dd..3f6b2bdb2d 100644
--- a/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile
+++ b/tools/dockerfile/test/cxx_clang_17_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM silkeh/clang:15-bullseye
+FROM silkeh/clang:17-bullseye
RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean
#=================
diff --git a/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version b/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version
new file mode 100644
index 0000000000..ee4ef83c35
--- /dev/null
+++ b/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_openssl111_x64:d32295b6e0b45141a49a47608734f1e057a1ec74@sha256:63f2cd5ae453aa2a850fc59b9ec8e8a865e63d9f99a2b796de65669f3bf21275 \ No newline at end of file
diff --git a/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile b/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile
new file mode 100644
index 0000000000..19822c8224
--- /dev/null
+++ b/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile
@@ -0,0 +1,125 @@
+# Copyright 2023 the gRPC authors.
+#
+# 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 debian:11
+
+#=================
+# Basic C core dependencies
+
+# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
+RUN apt-get update && apt-get install -y \
+ build-essential \
+ autoconf \
+ libtool \
+ pkg-config \
+ && apt-get clean
+
+# GCC
+RUN apt-get update && apt-get install -y \
+ gcc \
+ g++ \
+ && apt-get clean
+
+# libc6
+RUN apt-get update && apt-get install -y \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ && apt-get clean
+
+# Tools
+RUN apt-get update && apt-get install -y \
+ bzip2 \
+ curl \
+ dnsutils \
+ git \
+ lcov \
+ make \
+ strace \
+ time \
+ unzip \
+ wget \
+ zip \
+ && apt-get clean
+
+#=================
+# Setup git to access working directory across docker boundary.
+# This avoids the "fatal: detected dubious ownership in repository XYZ"
+# git error.
+
+RUN git config --global --add safe.directory '*'
+RUN git config --global protocol.file.allow always
+
+
+#====================
+# run_tests.py python dependencies
+
+# Basic python dependencies to be able to run tools/run_tests python scripts
+# These dependencies are not sufficient to build gRPC Python, gRPC Python
+# deps are defined elsewhere (e.g. python_deps.include)
+RUN apt-get update && apt-get install -y \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ python3-yaml \
+ && apt-get clean
+
+# use pinned version of pip to avoid sudden breakages
+RUN python3 -m pip install --upgrade pip==19.3.1
+
+# TODO(jtattermusch): currently six is needed for tools/run_tests scripts
+# but since our python2 usage is deprecated, we should get rid of it.
+RUN python3 -m pip install six==1.16.0
+
+# Google Cloud Platform API libraries
+# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
+RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0
+
+
+# Some cxx tests depend on the twisted package
+RUN python3 -m pip install twisted
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
+
+#=================
+# Install cmake
+# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
+
+RUN apt-get update && apt-get install -y cmake && apt-get clean
+
+#=================
+# Install ccache
+
+# Install ccache from source since ccache 3.x packaged with most linux distributions
+# does not support Redis backend for caching.
+RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.7.5/ccache-4.7.5.tar.gz \
+ && tar -zxf ccache.tar.gz \
+ && cd ccache-4.7.5 \
+ && mkdir build && cd build \
+ && cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
+ && make -j4 && make install \
+ && cd ../.. \
+ && rm -rf ccache-4.7.5 ccache.tar.gz
+
+
+RUN mkdir /var/local/jenkins
+
+
+# Install openssl 1.1.1 by installing libssl-dev on debian:11
+RUN apt-get update && apt-get install -y build-essential zlib1g-dev libssl-dev
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/python_debian11_default_arm64.current_version b/tools/dockerfile/test/python_debian11_default_arm64.current_version
index ab5a5bae27..2bd50d8317 100644
--- a/tools/dockerfile/test/python_debian11_default_arm64.current_version
+++ b/tools/dockerfile/test/python_debian11_default_arm64.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:4fbecbb42c07bce5d982e3808be6981549a5126d@sha256:e1fd0a85aed633d817ac086f3c588c6343d316b7d41a4dd62a8ecfbb70358687 \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:55eb2e98cc7ff914777976a5482fee5fa62e9cbe@sha256:fccca33a655c7aa89dd7ebd9492cbcc1f636bd2a004cd939d1982cfce3d68326 \ No newline at end of file
diff --git a/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile b/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile
index 147f2ff5ec..024acfe7e7 100644
--- a/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile
+++ b/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile
@@ -66,6 +66,10 @@ RUN git config --global protocol.file.allow always
RUN mkdir /var/local/jenkins
+# Python test coverage requires libsqlite3, and it have
+# to be installed before Python.
+RUN apt-get update && apt-get install -y libsqlite3-dev
+
# 3.9 is the default python3 version on debian11
RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip
diff --git a/tools/dockerfile/test/python_debian11_default_x64.current_version b/tools/dockerfile/test/python_debian11_default_x64.current_version
index becc999898..a318a5fcbc 100644
--- a/tools/dockerfile/test/python_debian11_default_x64.current_version
+++ b/tools/dockerfile/test/python_debian11_default_x64.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:a6300ecdbf62f0873270a97068c013e4ffc0b32d@sha256:8f22ba10b93b14c13ceb296cbbd41dba04947b457efc229412b43280ad6a4adc \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:05951fbd0e77e8ba072d270ad08f0d4b6ac00841@sha256:a956ff4bfbfa4fc6a00c7113f2dada7ce8cf4011f236f07197732981875d6519 \ No newline at end of file
diff --git a/tools/dockerfile/test/python_debian11_default_x64/Dockerfile b/tools/dockerfile/test/python_debian11_default_x64/Dockerfile
index b05110c364..2ba17722bc 100644
--- a/tools/dockerfile/test/python_debian11_default_x64/Dockerfile
+++ b/tools/dockerfile/test/python_debian11_default_x64/Dockerfile
@@ -67,30 +67,9 @@ RUN mkdir /var/local/jenkins
#=================
-# Compile CPython 3.6.15 from source
-
-RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
-RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
-
-RUN cd /tmp && \
- wget -q https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz && \
- tar xzvf Python-3.6.15.tgz && \
- cd Python-3.6.15 && \
- ./configure && \
- make -j4 && \
- make install
-
-RUN cd /tmp && \
- echo "f9e6f91c754a604f4fc6f6c7683723fb Python-3.6.15.tgz" > checksum.md5 && \
- md5sum -c checksum.md5
-
-RUN python3.6 -m ensurepip && \
- python3.6 -m pip install coverage
-
-#=================
# Compile CPython 3.7.13 from source
-RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
+RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
@@ -111,7 +90,7 @@ RUN python3.7 -m ensurepip && \
#=================
# Compile CPython 3.8.13 from source
-RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
+RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
@@ -132,7 +111,7 @@ RUN python3.8 -m ensurepip && \
#=================
# Compile CPython 3.10.3 from source
-RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
+RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
@@ -153,7 +132,7 @@ RUN python3.10 -m ensurepip && \
#=================
# Compile CPython 3.11.4 from source
-RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
+RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
@@ -172,6 +151,32 @@ RUN cd /tmp && \
RUN python3.11 -m ensurepip && \
python3.11 -m pip install coverage
+#=================
+# Compile CPython 3.12.0 from source
+
+RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean
+RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
+
+RUN cd /tmp && \
+ wget -q https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz && \
+ tar xzvf Python-3.12.0.tgz && \
+ cd Python-3.12.0 && \
+ ./configure && \
+ make -j4 && \
+ make install
+
+
+RUN cd /tmp && \
+ echo "d6eda3e1399cef5dfde7c4f319b0596c Python-3.12.0.tgz" > checksum.md5 && \
+ md5sum -c checksum.md5
+
+RUN python3.12 -m ensurepip && \
+ python3.12 -m pip install coverage
+
+
+# Python test coverage requires libsqlite3, and it have
+# to be installed before Python.
+RUN apt-get update && apt-get install -y libsqlite3-dev
# 3.9 is the default python3 version on debian11
RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip
diff --git a/tools/dockerfile/test/sanity.current_version b/tools/dockerfile/test/sanity.current_version
index 5223f72eb9..776c3d349b 100644
--- a/tools/dockerfile/test/sanity.current_version
+++ b/tools/dockerfile/test/sanity.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:33d6fede0d99054071b50e7d0b990f0b55a35f69@sha256:697961d9bc7e8b61598b707fade0b1a5d2e4e8c12e7ed66b07ab35eb619f0722 \ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:091d8e85bebb7b9f089178ae96435926cdc82fb8@sha256:f1f5ca30491698f793cae75d5989cb53887d159800aef662cf7e6c3df6f86a88 \ No newline at end of file
diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile
index 26971861f3..e45bdfc002 100644
--- a/tools/dockerfile/test/sanity/Dockerfile
+++ b/tools/dockerfile/test/sanity/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM silkeh/clang:15-bullseye
+FROM silkeh/clang:16-bullseye
#=================
# Basic C core dependencies
@@ -105,13 +105,13 @@ RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user
RUN apt-get update && apt-get install -y jq git
# Install prerequisites for the iwyu script
-RUN apt-get update && apt-get install -y jq git cmake zlib1g-dev libtinfo-dev libclang-15-dev && apt-get clean
+RUN apt-get update && apt-get install -y jq git cmake zlib1g-dev libtinfo-dev libclang-16-dev && apt-get clean
#========================
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 6.3.2
+ENV BAZEL_VERSION 6.4.0
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1