mirror of
https://github.com/grpc/grpc.git
synced 2026-01-24 10:53:30 +08:00
[test-infra] Update all Ubuntu docker images to v24.04 (#39567)
Closes #39567 PiperOrigin-RevId: 766480222
This commit is contained in:
committed by
Copybara-Service
parent
d88c4838d7
commit
954f0fe4b9
@@ -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/...
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2004_x64:e862792c549045d62ffd4ae0ad6271f8a8a0c11a@sha256:93aa31c1b7599a76b78a3e255ade1760bc41b1e851abd900fc3a2cf301e8a14f
|
||||
@@ -0,0 +1 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2404_x64:4b5513fc563a60a1de79a350820751b7fe85bb0f@sha256:0cabe4974ad439dd1fa9fd5225eb53607c2a605cb25183514252e7154df62018
|
||||
@@ -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
|
||||
@@ -1 +0,0 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2004_x64:88ff5e0c024db7aa193869378a9c22d08e795b8d@sha256:2a164a0be886d97e5706e848c02ee4e7a66619530deca1f95347f25e124a4d4b
|
||||
@@ -0,0 +1 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/python_ubuntu2404_x64:f9384e8d417be1e69a0443c55b80a1de6dfaea97@sha256:59bbb8ecbe653e0610343f46615b94a27292f843b65a7fe4acfc36940e09a7b1
|
||||
@@ -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
|
||||
@@ -1 +0,0 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2004_x64:706d4faa6f934f888dad44d5818f73e9f230b324@sha256:c12e84ac01971216c538ce180f29dd0bc868c8b91b84fcb0b1fc733004fab5f2
|
||||
@@ -0,0 +1 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_ubuntu2404_x64:623f84dab6598b7f28fa6bfbb812f77a4c8883cd@sha256:f777c0c37fe3947346bc72e267aa28c168001af96b5f0b46cf347df3ce09f17d
|
||||
@@ -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
|
||||
1
tools/dockerfile/test/rbe_debian11_x64.current_version
Normal file
1
tools/dockerfile/test/rbe_debian11_x64.current_version
Normal file
@@ -0,0 +1 @@
|
||||
us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_debian11_x64:cdb3cc04707eb78cfec207fe88e94e4805feae40@sha256:5db86f5086ddf76e8ae28a131aac0af32465be9bf69246514e765574b51bcb00
|
||||
85
tools/dockerfile/test/rbe_debian11_x64/Dockerfile
Normal file
85
tools/dockerfile/test/rbe_debian11_x64/Dockerfile
Normal 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"]
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user