Use the latest golang base image for Go interop tests. Presently the latest image points to Go 1.22.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
## Commands run
To render the Dockerfile from its template
```sh
$ tools/buildgen/generate_projects.sh
```
To build and upload the base docker image.
```sh
$ tools/dockerfile/push_testing_images.sh
```
To build and upload the interop docker image for grpc-go 1.64.0
```sh
$ tools/interop_matrix/create_matrix_images.py --git_checkout --release=v1.64.0 --upload_images --language go
```
To verify the image is uploaded
```sh
$ gcloud container images list-tags gcr.io/grpc-testing/grpc_interop_go1.x
DIGEST TAGS TIMESTAMP
b36be4961ec4 infrastructure-public-image-v1.64.0,v1.64.0 2024-06-03T22:26:48
```
Verify the backward compatability tests pass
```sh
$ export docker_image=gcr.io/grpc-testing/grpc_interop_go1.x:v1.64.0
$ tools/interop_matrix/testcases/go__master
Testing gcr.io/grpc-testing/grpc_interop_go1.x:v1.64.0
```
Fixes: https://github.com/grpc/grpc/issues/36060Closes#36755
PiperOrigin-RevId: 641272572
- Dropped Ruby 2.7 test (Ruby 2.7 hit EOL 1 year ago)
- Upgraded the base image of Ruby docker images from Debian:10 to Debian:11 (Debian:10 hit EOL)
Closes#35911
PiperOrigin-RevId: 607088383
Based on https://github.com/grpc/grpc/pull/34033
Bunch of cleanup and rebuilding many docker images from scratch
- consolidate the workaround for "dubious ownership" issue reported by
git. Other team members have run into this recently and used similar but
not identical workarounds so some cleanup is due.
- rebuilding many images increases the chance that we fix the "dubious
ownership" git issue early on rather than later on in the one-at-a-time
fashion in the future (and the former will prevent many teammembers from
wasting time on this weird issue).
- Newer version of ccache is needed for some portability tests to be
able to benefit from caching (e.g. the GCC 12 portability test to get
benefits of local disk caching) - this is a prerequisite for reenabling
the bazelified gcc12 portability test.
- upgrade node interop images to debian:11 (since debian jessie is long
past EOL).
* Use a non-root user in Node interop docker images
* Make node interop scripts without being root
* Update cwd in Node interop tests
* Update cwd in other Node interop tests
* Update cwd in Node interop tests relative to hardcoded path
* Fix updated Node interop test cwd
* Make service account file location more generic
* Use service account creds directly from mounted directory
* Fixing source path is recursive local submodule clone.
* Move creds file to /root, make /root accessible
Co-authored-by: Nicolas "Pixel" Noble <pixel@nobis-crew.org>
* remove gcc-multilib from base image
* remove useless "apt-get --allow-releaseinfo-change update" from docker images
* get rid of no-longer-useful python_debian11_base.include
* regenerate dockerfiles
* nit in python interop dockerfile
* address TODO in prepare_ccache_symlinks_rc
* enable ccache for C# and ruby distribtest jobs
* use debian11 instead of bullseye consistently
* upgrade ruby docker images to debian 11
* upgrade C# docker images to debian11
* update sanity dockerimage to debian11
* upgrade cxx interop to debian11
* add ccache to python interop images
* enable use of ccache for interop tests
* adjust run_tests.py to new docker images
* add ccache to rake-compiler-dock docker images
* improve prepare_ccache_symlinks_rc
* enable use of ccache in rake-compiler-dock docker containers
* add ccache support for python_manylinux2014_aarch64
* add ccache support for python_linux_armv7
* deduplicate python3.9 install
* ccache for crosscompiled darwin gems is broken
* fix bash -l resetting of PATH in grpc_artifact_python_linux_armv7
Since openjdk8 is dead to us (see #19113), we cannot leave openjdk8 in
the list of runtimes in client_matrix.py. The list of runtimes is now
the defaults to use, which includes master, and you can specify
alternative runtimes per-release.
Fixes#19113
This reduces the container size from 1.4 GB to 640 MB. 129 MB is
jessie, 489 MB jdk, and 22 MB grpc-java. When we swap from jessie to
stretch, we could swap to openjdk:8-jdk-slim-stretch which would make
the entire image 265 MB.
Python was never needed; it was added by mistake in 0589e533.
Pre-downloading gradle artifacts isn't helpful these days, because we
build on a clean machine. Git isn't needed as cp is sufficient. libapr1
has not been required by tcnative for a long time, and we even use
tcnative-boringssl-static since at least 1.0, which also doesn't need
it. The final cleanup is to remove source and downloaded artifacts when
done compiling.