summaryrefslogtreecommitdiff
path: root/grpc/tools/dockerfile/test
diff options
context:
space:
mode:
authorShuo Wang Hsu <shuohsu@google.com>2024-01-02 16:54:20 -0800
committerShuo Wang Hsu <shuohsu@google.com>2024-01-02 16:54:22 -0800
commit67249fccf527662d90aed4eed2181fdd4cb682e3 (patch)
tree38fcc3ed3fb25375eaf918489ea17913adca8ebe /grpc/tools/dockerfile/test
parentdde934ee51d1a9fa5562284fb0aface52c7adc2e (diff)
downloadgrpcio-sys-67249fccf527662d90aed4eed2181fdd4cb682e3.tar.gz
Upgrade grpcio-sys to 0.13.0+1.56.2-patched
This project was upgraded with external_updater. Usage: tools/external_updater/updater.sh update rust/crates/grpcio-sys For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md Test: TreeHugger Change-Id: Ife139c5ce97cbc54042f0820fe3caee5a7bdf083
Diffstat (limited to 'grpc/tools/dockerfile/test')
-rw-r--r--grpc/tools/dockerfile/test/android_ndk.current_version1
-rw-r--r--grpc/tools/dockerfile/test/android_ndk/Dockerfile116
-rw-r--r--grpc/tools/dockerfile/test/bazel.current_version1
-rw-r--r--grpc/tools/dockerfile/test/bazel/Dockerfile14
-rw-r--r--grpc/tools/dockerfile/test/bazel_arm64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/bazel_arm64/Dockerfile2
-rw-r--r--grpc/tools/dockerfile/test/binder_transport_apk.current_version1
-rw-r--r--grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile6
-rw-r--r--grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/csharp_debian11_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_alpine_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile10
-rw-r--r--grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile (renamed from grpc/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile)12
-rw-r--r--grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_clang_6_x64/Dockerfile (renamed from grpc/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile)2
-rw-r--r--grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_debian11_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_debian11_x86.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_gcc_12_x64/Dockerfile (renamed from grpc/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile)2
-rw-r--r--grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/cxx_gcc_7_x64/Dockerfile (renamed from grpc/tools/dockerfile/test/cxx_gcc_5_x64/Dockerfile)25
-rw-r--r--grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile4
-rw-r--r--grpc/tools/dockerfile/test/php7_debian11_arm64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/php7_debian11_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/python_alpine_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile15
-rw-r--r--grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/python_debian11_default_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version1
-rw-r--r--grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile84
-rw-r--r--grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile14
-rw-r--r--grpc/tools/dockerfile/test/ruby_debian11_x64.current_version1
-rw-r--r--grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile14
-rw-r--r--grpc/tools/dockerfile/test/sanity.current_version1
-rw-r--r--grpc/tools/dockerfile/test/sanity/Dockerfile17
39 files changed, 311 insertions, 50 deletions
diff --git a/grpc/tools/dockerfile/test/android_ndk.current_version b/grpc/tools/dockerfile/test/android_ndk.current_version
new file mode 100644
index 00000000..dbdacb00
--- /dev/null
+++ b/grpc/tools/dockerfile/test/android_ndk.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/android_ndk:47e2befd3ceab97fa3e8ad5b8499b684380d624d@sha256:256ff2bb8fd6c6921cd7653f79fa495669c6466f78df96f71867f89f6d487ff3 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/android_ndk/Dockerfile b/grpc/tools/dockerfile/test/android_ndk/Dockerfile
new file mode 100644
index 00000000..4be2803d
--- /dev/null
+++ b/grpc/tools/dockerfile/test/android_ndk/Dockerfile
@@ -0,0 +1,116 @@
+# Copyright 2021 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:10
+
+#=================
+# 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
+
+#====================
+# 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
+
+
+#=================
+# 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
+
+
+RUN mkdir /var/local/jenkins
+
+
+# Java required by Android SDK (using Eclipse Temurin Package)
+RUN apt install -y wget apt-transport-https && \
+ mkdir -p /etc/apt/keyrings && \
+ wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \
+ echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
+RUN apt update && apt install -y temurin-8-jdk
+
+# Install Android SDK
+ENV ANDROID_SDK_VERSION 4333796
+RUN mkdir -p /opt/android-sdk && cd /opt/android-sdk && \
+ wget -q https://dl.google.com/android/repository/sdk-tools-linux-$ANDROID_SDK_VERSION.zip && \
+ unzip -q sdk-tools-linux-$ANDROID_SDK_VERSION.zip && \
+ rm sdk-tools-linux-$ANDROID_SDK_VERSION.zip
+ENV ANDROID_SDK_PATH /opt/android-sdk
+ENV ANDROID_HOME /opt/android-sdk
+RUN yes | $ANDROID_SDK_PATH/tools/bin/sdkmanager --licenses # accept all licenses
+
+# Install gcloud
+RUN curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-407.0.0-linux-x86_64.tar.gz && \
+ tar -xf google-cloud-cli-407.0.0-linux-x86_64.tar.gz && \
+ ./google-cloud-sdk/install.sh --bash-completion=false --path-update=true && \
+ rm -rf google-cloud-cli-407.0.0-linux-x86_64.tar.gz
+RUN ln -s /google-cloud-sdk/bin/gcloud /usr/local/bin/gcloud
+
+# Define the default command.
+CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/bazel.current_version b/grpc/tools/dockerfile/test/bazel.current_version
new file mode 100644
index 00000000..af96da44
--- /dev/null
+++ b/grpc/tools/dockerfile/test/bazel.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:0f909e43012a80faa92e07b7871268841ce56ebc@sha256:1118150d9d9479787165fff49f660a3dc633f1c57604305460172fc1916aa022 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/bazel/Dockerfile b/grpc/tools/dockerfile/test/bazel/Dockerfile
index 4600d0b2..070944ea 100644
--- a/grpc/tools/dockerfile/test/bazel/Dockerfile
+++ b/grpc/tools/dockerfile/test/bazel/Dockerfile
@@ -15,8 +15,8 @@
# Pinned version of the base image is used to avoid regressions caused
# by rebuilding of this docker image. To see available versions, you can run
# "gcloud container images list-tags gcr.io/oss-fuzz-base/base-builder"
-# Image(5eceb81f5759) is built on Jan 31, 2022
-FROM gcr.io/oss-fuzz-base/base-builder@sha256:5eceb81f57599d63ca7c9a70c8968b23b128119699626ca749017019eb0b523f
+# Image(a4ad7a70fe10) is built on Apr 19, 2023
+FROM gcr.io/oss-fuzz-base/base-builder@sha256:a4ad7a70fe10674c880ca8618a564860114a31dcdd6f9896aac89f0b2f86112a
# -------------------------- WARNING --------------------------------------
# If you are making changes to this file, consider changing
@@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 4.2.1
+ENV BAZEL_VERSION 6.1.2
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
@@ -57,6 +57,14 @@ RUN BAZEL_ARCH_SUFFIX="$(uname -m | sed s/aarch64/arm64/)" \
# The binary will work correctly when run on real arm64
# hardware, when qemu-user-static isn't getting into the way.
+#=================
+# Setup git to access working directory across docker boundary
+
+RUN git config --global --add safe.directory /var/local/jenkins/grpc
+RUN git config --global protocol.file.allow always
+
+
+RUN apt-get install -y gdb
RUN mkdir -p /var/local/jenkins
diff --git a/grpc/tools/dockerfile/test/bazel_arm64.current_version b/grpc/tools/dockerfile/test/bazel_arm64.current_version
new file mode 100644
index 00000000..5447db87
--- /dev/null
+++ b/grpc/tools/dockerfile/test/bazel_arm64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:a272710054f09ab7594fbae721de67ecd964d0a1@sha256:dd4a71e2852faf24b45e21445331f400bb278c83f6ad6d7d89d43c9ac564d529 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile b/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile
index e8137ab7..3c138cd6 100644
--- a/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile
+++ b/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile
@@ -88,7 +88,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 4.2.1
+ENV BAZEL_VERSION 6.1.2
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
diff --git a/grpc/tools/dockerfile/test/binder_transport_apk.current_version b/grpc/tools/dockerfile/test/binder_transport_apk.current_version
new file mode 100644
index 00000000..188d50a9
--- /dev/null
+++ b/grpc/tools/dockerfile/test/binder_transport_apk.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:6f6d33e740ced89b744c2d8bdf0e9c4744cc1c52@sha256:85341f035e44601a93d16ff5b9b5810a0da313af03e2a76cf4135144633e0bab \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile b/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile
index 10e624ce..dea06827 100644
--- a/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile
+++ b/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile
@@ -15,8 +15,8 @@
# Pinned version of the base image is used to avoid regressions caused
# by rebuilding of this docker image. To see available versions, you can run
# "gcloud container images list-tags gcr.io/oss-fuzz-base/base-builder"
-# Image(5eceb81f5759) is built on Jan 31, 2022
-FROM gcr.io/oss-fuzz-base/base-builder@sha256:5eceb81f57599d63ca7c9a70c8968b23b128119699626ca749017019eb0b523f
+# Image(a4ad7a70fe10) is built on Apr 19, 2023
+FROM gcr.io/oss-fuzz-base/base-builder@sha256:a4ad7a70fe10674c880ca8618a564860114a31dcdd6f9896aac89f0b2f86112a
# -------------------------- WARNING --------------------------------------
# If you are making changes to this file, consider changing
@@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 4.2.1
+ENV BAZEL_VERSION 6.1.2
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
diff --git a/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version b/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version
new file mode 100644
index 00000000..b55fe377
--- /dev/null
+++ b/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/csharp_debian11_arm64:31749e35f65ff63a4965ac306d96b447e9811fb5@sha256:e1345c81aaab856eab0635ddbe612294bee9ee38d4938d3434eab277de6029b8 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version b/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version
new file mode 100644
index 00000000..139abe51
--- /dev/null
+++ b/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/csharp_debian11_x64:4eead6ba66c39598d9bb9f5b8e46e114c460c717@sha256:a38ffe41c25486ad0624f54b4a5fa11e74772a06f537c553b3ae3944511ef348 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version b/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version
new file mode 100644
index 00000000..9a3f785b
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_alpine_x64:946399d3635bc9bcf2f40c026b80213ce30e479c@sha256:a84a6faf639dcf4a3e32eec0f5a08169e9c9866750e5aa53bdf89e8d378d326a \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile
index 819c986d..9121f4f7 100644
--- a/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM alpine:3.11
+FROM alpine:3.15
# Install Git and basic packages.
RUN apk update && apk add \
@@ -66,6 +66,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
RUN mkdir /var/local/jenkins
-
+#=================
+# Setup git to access working directory across docker boundary
+
+RUN git config --global --add safe.directory /var/local/jenkins/grpc
+RUN git config --global protocol.file.allow always
+
+
# Define the default command.
CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version b/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version
new file mode 100644
index 00000000..2259255e
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_15_x64:99325d14f5121515b2454bfab9b59c155e182c18@sha256:906c0ca1edcab595fce313636528e6244d8fc914a6e72a22764e96208f465936 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile
index c54962ae..e6d60b4a 100644
--- a/grpc/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM silkeh/clang:13
+FROM silkeh/clang:15-bullseye
RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean
#====================
@@ -41,10 +41,6 @@ RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-clien
#=================
-# 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.
@@ -67,6 +63,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
RUN mkdir /var/local/jenkins
+#=================
+# Setup git to access working directory across docker boundary
+
+RUN git config --global --add safe.directory /var/local/jenkins/grpc
+RUN git config --global protocol.file.allow always
+
# Define the default command.
CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version b/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version
new file mode 100644
index 00000000..f3d14598
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_6_x64:78958e51f94dfb5c8c5e0a1fde2cfa4ccf0fee02@sha256:c5cec74947c06174b21188eb9565f322a8543cd4878dc40b34cfcaee9a5fd94a \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_clang_6_x64/Dockerfile
index 75ac65ea..e5ac6c1e 100644
--- a/grpc/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/cxx_clang_6_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM silkeh/clang:4
+FROM silkeh/clang:6
RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean
#====================
diff --git a/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version b/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version
new file mode 100644
index 00000000..04ee616e
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_openssl102_x64:af647277e5acb05a89769f23a73a763be7423c53@sha256:15af353947cad7d7bead70ddb1e43a20cfa561de8e894aa7f92e320f55673959 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version b/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version
new file mode 100644
index 00000000..e6532390
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_x64:47b0a0916781ab659c049d44efb3f1496dae4660@sha256:a69a1ed729137c3ea347f0a3488524573285be7832dd74cec830db57b61a9b8c \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version b/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version
new file mode 100644
index 00000000..63e3a3f2
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_x86:7b84ff94b76bcf1e67126468bcb816cd1badc859@sha256:fcb11fd175ef153f7abddf25d1f71e338d1874a4075287dcf3af765ea6226a98 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version b/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version
new file mode 100644
index 00000000..843b08bb
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_gcc_12_x64:6c0ab4904f3c9aa9a38ba29f14c94dfc3e7901b2@sha256:a6d9f04d8075e697e16245004ab22bf22dd972c9724ecb750919816396186c09 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_gcc_12_x64/Dockerfile
index 93e0e1f4..41b11be2 100644
--- a/grpc/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/cxx_gcc_12_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM gcc:11
+FROM gcc:12
RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean
#====================
diff --git a/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version b/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version
new file mode 100644
index 00000000..7e105ab3
--- /dev/null
+++ b/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_gcc_7_x64:953aea35378bad8c12f2513c0dc6199bed1ca11d@sha256:7d33f341c7f7a5f358943c1f0b887de756079f406b7c7794e76cb0e42439c95b \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/cxx_gcc_5_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_gcc_7_x64/Dockerfile
index bcbad5af..07283c83 100644
--- a/grpc/tools/dockerfile/test/cxx_gcc_5_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/cxx_gcc_7_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM gcc:5
+FROM gcc:7
RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean
#====================
@@ -41,13 +41,24 @@ RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-clien
#=================
-# Use cmake 3.6 from jessie-backports
-# should only be used for images based on debian jessie.
+# 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 echo "deb http://archive.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/jessie-backports.list
-RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf
-RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
-RUN apt-get update && apt-get install -t jessie-backports -y cmake && apt-get clean
+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.5.1/ccache-4.5.1.tar.gz \
+ && tar -zxf ccache.tar.gz \
+ && cd ccache-4.5.1 \
+ && 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.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins
diff --git a/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version b/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version
new file mode 100644
index 00000000..723f003c
--- /dev/null
+++ b/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/php73_zts_debian11_x64:dc72ed4ad9a2a61dbaa410e266deff9c0c2765ac@sha256:db46a738bf187ffcabbd278a716930c87f90dec2599349c5a52937f9a17e96f8 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile b/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile
index f157b24d..95b4ce9b 100644
--- a/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile
@@ -83,9 +83,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
RUN mkdir /var/local/jenkins
-
-# Seems required by XDS interop tests.
+# Required by XDS interop test harness.
RUN python3 -m pip install virtualenv==16.7.9
+
# Define the default command.
CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version b/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version
new file mode 100644
index 00000000..b20ffd16
--- /dev/null
+++ b/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/php7_debian11_arm64:20fabcbf3bf31bdaf412fad5b504d466b5aab245@sha256:444e25f9e3a89c2438e4d5e6f3904c5a1f4d1fb961f8456333ebe3e36e301a4e \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/php7_debian11_x64.current_version b/grpc/tools/dockerfile/test/php7_debian11_x64.current_version
new file mode 100644
index 00000000..624f7450
--- /dev/null
+++ b/grpc/tools/dockerfile/test/php7_debian11_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/php7_debian11_x64:e6b7ccb98f6834b0cc7f01dff4e9694dd22d7d85@sha256:018d422abf144fc93e9027fd994f7d6aab453fffbe4a669d622dd3d1c1fe9ee7 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/python_alpine_x64.current_version b/grpc/tools/dockerfile/test/python_alpine_x64.current_version
new file mode 100644
index 00000000..875b823b
--- /dev/null
+++ b/grpc/tools/dockerfile/test/python_alpine_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/python_alpine_x64:81425200ee33ca5370a49efc09d1d918eded5522@sha256:d10159225ae25276b7ae7bfc4230150e4b0a8ce7be833d904bdd4ecdfdc91c6e \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile b/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile
index 70254d6e..c158e6db 100644
--- a/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile
@@ -12,24 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM alpine:3.11
+FROM alpine:3.15
# Install Git and basic packages.
RUN apk update && apk add autoconf automake bzip2 build-base cmake ccache curl gcc git libtool linux-headers make perl strace python3-dev py3-pip unzip wget zip
-RUN ln -s /usr/bin/pip3 /usr/bin/pip
RUN ln -s /usr/bin/python3 /usr/bin/python
# Install Python packages from PyPI
RUN python3 -m pip install --upgrade pip==19.3.1
-RUN python3 -m pip install virtualenv
-RUN python3 -m pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 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
-
#=================
# Install ccache
@@ -44,3 +40,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
+
+RUN mkdir /var/local/jenkins
+
+#=================
+# Setup git to access working directory across docker boundary
+
+RUN git config --global --add safe.directory /var/local/jenkins/grpc
+RUN git config --global protocol.file.allow always
+
diff --git a/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version b/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version
new file mode 100644
index 00000000..9b169fc5
--- /dev/null
+++ b/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:faff3d19982d4a3f479a4d9633d28028834bc4df@sha256:868cfb50e465f086b75bb65a7fab6d15b1edefabcd8c1826340acefb6ea1737f \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version b/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version
new file mode 100644
index 00000000..e99215e6
--- /dev/null
+++ b/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:ee6a567ba2dee1502abec2d08b87b0c0caba8a42@sha256:df00d587bda7cbe4308e18def313fe893cffbeb5a807ab14a90ff0d87b1a001c \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version b/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version
new file mode 100644
index 00000000..ed04a4e7
--- /dev/null
+++ b/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_ubuntu2004:58594aefea3481a4839f8411e365b58ef9f34fcc@sha256:d3951aeadf43e3bee6adc5b86d26cdaf0b9d1b5baf790d7b2530d1c197adc9f8 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile b/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile
new file mode 100644
index 00000000..97d57045
--- /dev/null
+++ b/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile
@@ -0,0 +1,84 @@
+# 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 ubuntu:20.04
+
+# Workaround the "tzdata hangs apt-get install during docker image build" issue for ubuntu20.04
+# by setting timezone to "Etc/UTC" in advance.
+RUN echo "Etc/UTC" > /etc/timezone
+
+RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean
+
+#====================
+# 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 bazel tests expect "python" binary to exist
+RUN ln -s /usr/bin/python3 /usr/bin/python
+
+# Install Google's LLVM build for Ubuntu 20.04
+# Heavily inspired by https://github.com/GoogleCloudPlatform/container-definitions/tree/master/ubuntu1804_rbe
+# See go/llvm-docker
+# Note that we are using the google's pre-built tools for multiple reasons:
+# * this is what the "official" rbe-ubuntu18-04 image is using: See https://github.com/GoogleCloudPlatform/layer-definitions/tree/master/layers/ubuntu1804/clang
+# * for sanitizers to work, we need MSAN and TSAN enabled versions of libc++
+# Check https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/latest.txt
+# for the value of LLVM_LATEST.
+ARG LLVM_LATEST="f2b94bd7eaa83d853dc7568fac87b1f8bf4ddec6"
+RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/clang_r${LLVM_LATEST}.tar.gz -O /tmp/clang.tar.gz \
+ && tar -xzf /tmp/clang.tar.gz -C /usr/local && rm /tmp/clang.tar.gz
+RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx.tar.gz \
+ && tar -xzf /tmp/libcxx.tar.gz -C /usr/local && rm /tmp/libcxx.tar.gz
+RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx-msan_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx-msan.tar.gz \
+ && mkdir -p /usr/local/libcxx-msan && tar -xzf /tmp/libcxx-msan.tar.gz -C /usr/local/libcxx-msan && rm /tmp/libcxx-msan.tar.gz
+RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx-tsan_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx-tsan.tar.gz \
+ && mkdir -p /usr/local/libcxx-tsan && tar -xzf /tmp/libcxx-tsan.tar.gz -C /usr/local/libcxx-tsan && rm /tmp/libcxx-tsan.tar.gz
+RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/lld_r${LLVM_LATEST}.tar.gz -O /tmp/lld.tar.gz \
+ && tar -xzf /tmp/lld.tar.gz -C /usr/local && rm /tmp/lld.tar.gz
+
+ENV ASAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
+ENV CC=/usr/local/bin/clang
+ENV GCOV=/dev/null
+ENV LD_LIBRARY_PATH=/usr/local/lib/x86_64-unknown-linux-gnu
+ENV MSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
+ENV TSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
+ENV UBSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
+
+# TODO(jtattermusch): Remove python2 once some tests stop failing without it.
+RUN apt-get update && apt-get install -y python2 && apt-get clean
+
+# Define the default command.
+CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version b/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version
new file mode 100644
index 00000000..986d9ffe
--- /dev/null
+++ b/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_arm64:215df896c707f55c3092a64afc4075c7a408b516@sha256:9503d80a40555aba4dd531b64354ad8036c6b37e162c93e7994ca23d89bc7d41 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile b/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile
index 279bf7d1..65ea471b 100644
--- a/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile
+++ b/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile
@@ -86,14 +86,14 @@ RUN apt-get update && apt-get install -y gnupg2 && apt-get clean
RUN gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RUN \curl -sSL https://get.rvm.io | bash -s stable
-# Install Ruby 2.5
+# Install Ruby 2.7
RUN apt-get update && apt-get install -y procps && apt-get clean
-RUN /bin/bash -l -c "rvm install ruby-2.5"
-RUN /bin/bash -l -c "rvm use --default ruby-2.5"
+RUN /bin/bash -l -c "rvm install ruby-2.7"
+RUN /bin/bash -l -c "rvm use --default ruby-2.7"
RUN /bin/bash -l -c "echo 'gem: --no-document' > ~/.gemrc"
RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
-RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.5' >> ~/.bashrc"
-RUN /bin/bash -l -c "gem install bundler --no-document -v 1.9"
+RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.7' >> ~/.bashrc"
+RUN /bin/bash -l -c "gem install bundler --no-document"
#=================
# Install cmake
@@ -118,9 +118,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
RUN mkdir /var/local/jenkins
-
-# Seems required by XDS interop tests.
+# Required by XDS interop test harness.
RUN python3 -m pip install virtualenv==16.7.9
+
# Define the default command.
CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version b/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version
new file mode 100644
index 00000000..2f52045a
--- /dev/null
+++ b/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64:05ff6c04182addf087f77b2515992e98b9c7a171@sha256:3f01369c3e5707fa63007820b30461b9e32a4b729d81cb92d19669d7966a8584 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile b/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile
index 4f180854..eab09a00 100644
--- a/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile
+++ b/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile
@@ -86,14 +86,14 @@ RUN apt-get update && apt-get install -y gnupg2 && apt-get clean
RUN gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RUN \curl -sSL https://get.rvm.io | bash -s stable
-# Install Ruby 2.5
+# Install Ruby 2.7
RUN apt-get update && apt-get install -y procps && apt-get clean
-RUN /bin/bash -l -c "rvm install ruby-2.5"
-RUN /bin/bash -l -c "rvm use --default ruby-2.5"
+RUN /bin/bash -l -c "rvm install ruby-2.7"
+RUN /bin/bash -l -c "rvm use --default ruby-2.7"
RUN /bin/bash -l -c "echo 'gem: --no-document' > ~/.gemrc"
RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
-RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.5' >> ~/.bashrc"
-RUN /bin/bash -l -c "gem install bundler --no-document -v 1.9"
+RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.7' >> ~/.bashrc"
+RUN /bin/bash -l -c "gem install bundler --no-document"
#=================
# Install cmake
@@ -118,9 +118,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa
RUN mkdir /var/local/jenkins
-
-# Seems required by XDS interop tests.
+# Required by XDS interop test harness.
RUN python3 -m pip install virtualenv==16.7.9
+
# Define the default command.
CMD ["bash"]
diff --git a/grpc/tools/dockerfile/test/sanity.current_version b/grpc/tools/dockerfile/test/sanity.current_version
new file mode 100644
index 00000000..fcd7f663
--- /dev/null
+++ b/grpc/tools/dockerfile/test/sanity.current_version
@@ -0,0 +1 @@
+us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:bdca9dc08b4c765efc427cc6d9204005799dda34@sha256:189e07d8503aa15344e3c8f565783659c3e2edc5b8ca455ec427de1e29ef4504 \ No newline at end of file
diff --git a/grpc/tools/dockerfile/test/sanity/Dockerfile b/grpc/tools/dockerfile/test/sanity/Dockerfile
index e129bf00..63cfa2a9 100644
--- a/grpc/tools/dockerfile/test/sanity/Dockerfile
+++ b/grpc/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:13
+FROM silkeh/clang:15-bullseye
#=================
# Basic C core dependencies
@@ -53,10 +53,6 @@ RUN apt-get update && apt-get install -y \
zip \
&& apt-get clean
-#=================
-# C++ dependencies
-RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
-
# Install Python 3.7 from source (and installed as a default python3)
# (Bullseye comes with Python 3.9 which isn't supported by pytype yet)
@@ -99,11 +95,14 @@ RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user
# Install prerequisites for the clang-tidy script
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
+
#========================
# Bazel installation
# Must be in sync with tools/bazel
-ENV BAZEL_VERSION 4.2.1
+ENV BAZEL_VERSION 6.1.2
# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
@@ -127,6 +126,12 @@ RUN wget https://github.com/bazelbuild/buildtools/releases/download/0.29.0/build
RUN chmod +x buildifier
RUN mv buildifier /usr/local/bin
+#=================
+# Setup git to access working directory across docker boundary
+
+RUN git config --global --add safe.directory /var/local/jenkins/grpc
+RUN git config --global protocol.file.allow always
+
# Define the default command.
CMD ["bash"]