[test-infra] Update all Ubuntu docker images to v24.04 (#39567)

Closes #39567

PiperOrigin-RevId: 766480222
This commit is contained in:
Rishesh Agarwal
2025-06-02 22:01:30 -07:00
committed by Copybara-Service
parent d88c4838d7
commit 954f0fe4b9
16 changed files with 112 additions and 23 deletions

View File

@@ -12,7 +12,7 @@
---
# TODO(yannic): Ideally, we should also enable buildifier and all platforms should test `//...`.
tasks:
ubuntu2004:
ubuntu2204:
build_targets:
- //:all
- //src/proto/...

View File

@@ -44,19 +44,19 @@ DOCKERIMAGE_CURRENT_VERSIONS = {
"tools/dockerfile/distribtest/python_dev_bullseye_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x64@sha256:2c1da4cad1a5c5f825d66881229ec8a92d99941174b7a320d97f5e01cfc3ce8a",
"tools/dockerfile/distribtest/python_dev_bullseye_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x86@sha256:6a781b5064658d63e8eb11cd12f71f0c90b7af2f4e7eb41ccfb07897278349a1",
"tools/dockerfile/distribtest/python_dev_fedora40_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_fedora40_x64@sha256:b364875e084d1d63d596086ff744895addc6bb6f299864f52883afd2591a19bd",
"tools/dockerfile/distribtest/python_dev_ubuntu2004_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2004_x64@sha256:93aa31c1b7599a76b78a3e255ade1760bc41b1e851abd900fc3a2cf301e8a14f",
"tools/dockerfile/distribtest/python_dev_ubuntu2204_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2204_x64@sha256:46065078c896d6a0df383015a809048ff996791b327821bbc78d79835b39b27f",
"tools/dockerfile/distribtest/python_dev_ubuntu2404_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2404_x64@sha256:0cabe4974ad439dd1fa9fd5225eb53607c2a605cb25183514252e7154df62018",
"tools/dockerfile/distribtest/python_fedora40_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_fedora40_x64@sha256:21a6a88eeccb14fcc73daa099899500f9270ca85a0bece3769411b24bd0858ee",
"tools/dockerfile/distribtest/python_opensuse_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_opensuse_x64@sha256:c06efa1964d268c60eeb14d82e26bc6691f22a4888bbfe921b1e9df4519821af",
"tools/dockerfile/distribtest/python_python39_buster_aarch64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_python39_buster_aarch64@sha256:081affeaa7c2b4a6f9c2816cfc2dc3ff9704c12dc1c7b16e360ef7bfdfeac1d2",
"tools/dockerfile/distribtest/python_ubuntu2004_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2004_x64@sha256:2a164a0be886d97e5706e848c02ee4e7a66619530deca1f95347f25e124a4d4b",
"tools/dockerfile/distribtest/python_ubuntu2204_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2204_x64@sha256:0b8c6f54f40c4a9f20bad558841c6f43ad75059ba9c63e4a1dc918c6be0d35ee",
"tools/dockerfile/distribtest/python_ubuntu2404_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2404_x64@sha256:59bbb8ecbe653e0610343f46615b94a27292f843b65a7fe4acfc36940e09a7b1",
"tools/dockerfile/distribtest/ruby_debian11_x64_ruby_3_1.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64_ruby_3_1@sha256:11347339e57c04866585511dd2de87df483179395869b4754a09724a54c1c77e",
"tools/dockerfile/distribtest/ruby_debian11_x64_ruby_3_2.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64_ruby_3_2@sha256:c4eb679928e92f660fc8e8ebfd8c76a5d6b6f22e5b6e875c52fa42b166ab5c55",
"tools/dockerfile/distribtest/ruby_debian11_x64_ruby_3_3.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64_ruby_3_3@sha256:7def7f623814dd9439ccb33ff0400bae9763bee7b9334c6542884ff240070c83",
"tools/dockerfile/distribtest/ruby_debian11_x64_ruby_3_4.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64_ruby_3_4@sha256:208fadc38e1e279fae7e338841ce147088150d0f141d2961f5527bd6ea09b711",
"tools/dockerfile/distribtest/ruby_ubuntu2004_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2004_x64@sha256:c12e84ac01971216c538ce180f29dd0bc868c8b91b84fcb0b1fc733004fab5f2",
"tools/dockerfile/distribtest/ruby_ubuntu2204_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2204_x64@sha256:7970ff2b6cc22816248e0b2b44ae7e90c5a0f5a830b79ec1a56093df3ee8e235",
"tools/dockerfile/distribtest/ruby_ubuntu2404_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2404_x64@sha256:f777c0c37fe3947346bc72e267aa28c168001af96b5f0b46cf347df3ce09f17d",
"tools/dockerfile/grpc_artifact_manylinux2014_aarch64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/grpc_artifact_manylinux2014_aarch64@sha256:9d6f150da39d1b16269d601010876d3f8a2138121db289abad40fdaf7fad287b",
"tools/dockerfile/grpc_artifact_manylinux2014_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/grpc_artifact_manylinux2014_x64@sha256:0f1e61a35200df7ddbe8626e353b634ab831ab556860ff85d55b650617c5385b",
"tools/dockerfile/grpc_artifact_manylinux2014_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/grpc_artifact_manylinux2014_x86@sha256:b8d3242fc9402ed55cf2fe20d13be7491141e793bc76c12e6452c8cb072624cf",
@@ -107,6 +107,7 @@ DOCKERIMAGE_CURRENT_VERSIONS = {
"tools/dockerfile/test/python_alpine_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_alpine_x64@sha256:e0977042270a8667c21962ef4810ce4ce960f905b38240e57956044254ded981",
"tools/dockerfile/test/python_debian11_default_arm64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64@sha256:dbcb13175003e8d14dd9f6510d61443b408cb123dc75347ce378c4a3436aa0c3",
"tools/dockerfile/test/python_debian11_default_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64@sha256:ca23cce9e3299454ec9bdb801339baedc56746b9bf3f116209fdf8a3d0e0d803",
"tools/dockerfile/test/rbe_debian11_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_debian11_x64@sha256:5db86f5086ddf76e8ae28a131aac0af32465be9bf69246514e765574b51bcb00",
"tools/dockerfile/test/rbe_ubuntu2004.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_ubuntu2004@sha256:bce8453713efcff3f4effe0d7bb0ef743ec4e772c63bac637c38d0af0e1a9ad9",
"tools/dockerfile/test/ruby_debian11_arm64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_arm64@sha256:5ae5624f718d3ee1cb28502650abf7bd46749fe2a32b2460958125e6aeafdd8d",
"tools/dockerfile/test/ruby_debian11_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64@sha256:30c96c6b7f0604ff8eed8f58c6149e3cd087b65fcea5b0109ae6a57f50685f43",

View File

@@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2004_x64:e862792c549045d62ffd4ae0ad6271f8a8a0c11a@sha256:93aa31c1b7599a76b78a3e255ade1760bc41b1e851abd900fc3a2cf301e8a14f

View File

@@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2404_x64:4b5513fc563a60a1de79a350820751b7fe85bb0f@sha256:0cabe4974ad439dd1fa9fd5225eb53607c2a605cb25183514252e7154df62018

View File

@@ -1,4 +1,4 @@
# Copyright 2022 The gRPC authors.
# Copyright 2025 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,11 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM ubuntu:20.04
FROM ubuntu:24.04
RUN apt-get update -y && apt-get install -y python3 python3-pip
RUN apt-get install -y build-essential
RUN apt-get install -y python3-dev
RUN python3 -m pip install virtualenv
RUN python3 -m pip install --break-system-packages virtualenv

View File

@@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2004_x64:88ff5e0c024db7aa193869378a9c22d08e795b8d@sha256:2a164a0be886d97e5706e848c02ee4e7a66619530deca1f95347f25e124a4d4b

View File

@@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2404_x64:f9384e8d417be1e69a0443c55b80a1de6dfaea97@sha256:59bbb8ecbe653e0610343f46615b94a27292f843b65a7fe4acfc36940e09a7b1

View File

@@ -1,4 +1,4 @@
# Copyright 2022 gRPC authors.
# Copyright 2025 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,11 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM ubuntu:20.04
FROM ubuntu:24.04
RUN apt-get update -y && apt-get install -y python3 python3-pip
# Ubuntu's python-pip package installs pip to /usr/bin, whereas the upgraded
# pip lives at /usr/local/bin/pip. We'll use the absolute path for now, since
# this will all be replaced with python3.
RUN pip install virtualenv
RUN pip install --break-system-packages virtualenv

View File

@@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2004_x64:706d4faa6f934f888dad44d5818f73e9f230b324@sha256:c12e84ac01971216c538ce180f29dd0bc868c8b91b84fcb0b1fc733004fab5f2

View File

@@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2404_x64:623f84dab6598b7f28fa6bfbb812f77a4c8883cd@sha256:f777c0c37fe3947346bc72e267aa28c168001af96b5f0b46cf347df3ce09f17d

View File

@@ -1,4 +1,4 @@
# Copyright 2020 the gRPC authors.
# Copyright 2025 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,14 +12,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM ubuntu:20.04
FROM ubuntu:24.04
# Install Git and basic packages.
RUN apt-get update -y && apt-get install -y \
curl \
gnupg2 \
curl gnupg2 \
gcc && apt-get clean
#==================
# Ruby dependencies
# Install rvm
RUN gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RUN \curl -sSL https://get.rvm.io | bash -s stable

View File

@@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_debian11_x64:cdb3cc04707eb78cfec207fe88e94e4805feae40@sha256:5db86f5086ddf76e8ae28a131aac0af32465be9bf69246514e765574b51bcb00

View File

@@ -0,0 +1,85 @@
# Copyright 2025 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
# 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 Debian 11
# 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-debian11/latest.txt
# for the value of LLVM_LATEST.
ARG LLVM_LATEST="f9c01b59e3d5239a4e42f94d5edbeb3698a81032"
RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-debian11/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-debian11/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-debian11/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-debian11/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-debian11/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 LIBRARY_PATH=/usr/local/lib
ENV LD_LIBRARY_PATH=/usr/local/lib
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"]

View File

@@ -37,7 +37,7 @@ gcloud compute instances create "$INSTANCE_NAME" \
--zone "$ZONE" \
--machine-type $MACHINE_TYPE \
--image-project ubuntu-os-cloud \
--image-family ubuntu-2004-lts \
--image-family ubuntu-2204-lts \
--boot-disk-size 300 \
--scopes https://www.googleapis.com/auth/bigquery \
--tags=allow-ssh

View File

@@ -117,7 +117,7 @@ sudo apt-get update
sudo apt-get install -y mono-devel
# C# .NET Core dependencies (https://www.microsoft.com/net/download)
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install -y apt-transport-https

View File

@@ -457,7 +457,7 @@ def targets():
PythonDistribTest("linux", "x64", "fedora40"),
PythonDistribTest("linux", "x64", "arch"),
PythonDistribTest("linux", "x64", "alpine"),
PythonDistribTest("linux", "x64", "ubuntu2204"),
PythonDistribTest("linux", "x64", "ubuntu2404"),
PythonDistribTest(
"linux", "aarch64", "python39_buster", presubmit=True
),
@@ -473,7 +473,7 @@ def targets():
),
PythonDistribTest("linux", "x64", "fedora40", source=True),
PythonDistribTest("linux", "x64", "arch", source=True),
PythonDistribTest("linux", "x64", "ubuntu2204", source=True),
PythonDistribTest("linux", "x64", "ubuntu2404", source=True),
# Ruby
RubyDistribTest(
"linux",
@@ -503,8 +503,8 @@ def targets():
RubyDistribTest(
"linux", "x64", "debian11", ruby_version="ruby_3_4", presubmit=True
),
RubyDistribTest("linux", "x64", "ubuntu2004"),
RubyDistribTest("linux", "x64", "ubuntu2204", presubmit=True),
RubyDistribTest("linux", "x64", "ubuntu2204"),
RubyDistribTest("linux", "x64", "ubuntu2404", presubmit=True),
# PHP8
PHP8DistribTest("linux", "x64", "debian12", presubmit=True),
PHP8DistribTest("macos", "x64", presubmit=True),