Description
Module
GCloud
Testcontainers version
1.17.6
Using the latest Testcontainers version?
Yes
Host OS
MacOS
Host Arch
ARM/aarch64
Docker version
Client:
Cloud integration: v1.0.29
Version: 20.10.21
API version: 1.41
Go version: go1.18.7
Git commit: baeda1f
Built: Tue Oct 25 18:01:18 2022
OS/Arch: darwin/arm64
Context: desktop-linux
Experimental: true
Server: Docker Desktop 4.15.0 (93002)
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 3056208
Built: Tue Oct 25 17:59:41 2022
OS/Arch: linux/arm64
Experimental: true
containerd:
Version: 1.6.10
GitCommit: 770bd0108c32f3fb5c73ae1264f7e503fe7b2661
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
What happened?
Currently the GCloud module defines gcr.io/google.com/cloudsdktool/cloud-sdk
as the default image name. However, Google has transitioned to gcr.io/google.com/cloudsdktool/google-cloud-cli
, which now also contain multi-arch support for any released images there.
I confirmed when running a test suite using gcr.io/google.com/cloudsdktool/cloud-sdk:emulators
that the running container was in fact an AMD (x86) container running via Rosetta. However, when running w/ the google-cloud-cli image, e.g.
DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators").asCompatibleSubstituteFor("gcr.io/google.com/cloudsdktool/cloud-sdk")
...then the container used is correctly arm/aarch64 compatible.
Relevant log output
No response
Additional Information
Using a correct arm/aarch64 compatible image amounts to a reduction of ~25% in our total test suite run time. As far as I can tell, the only difference between published cloud-sdk
images versus the google-cloud-cli
images is that one is built w/ multi arch support. Therefore I'd propose changing the default image name to gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators