1- FROM marketplace.gcr.io/google/debian12:latest
1+ ARG FINAL_STAGE=prod
2+ FROM marketplace.gcr.io/google/debian12:latest AS prod
23ARG CLOUD_SDK_VERSION
34ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
45ENV PATH /google-cloud-sdk/bin:$PATH
@@ -18,14 +19,36 @@ RUN echo 'deb http://deb.debian.org/debian/ sid main' >> /etc/apt/sources.list &
1819 make \
1920 gnupg && \
2021 apt-get -y -t sid install openjdk-21-jre-headless
21- RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi;
22- RUN ARCH=`cat /tmp/arch` && curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
23- tar xzf google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
24- rm google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz
25- RUN echo -n "anthoscli app-engine-java app-engine-python alpha beta pubsub-emulator cloud-datastore-emulator app-engine-go bigtable cbt app-engine-python-extras kubectl gke-gcloud-auth-plugin kustomize minikube skaffold kpt local-extract cloud-sql-proxy docker-credential-gcr package-go-module cloud-firestore-emulator cloud-run-proxy log-streaming managed-flink-client terraform-tools config-connector enterprise-certificate-proxy istioctl kubectl-oidc pkg" > /tmp/additional_components
26- # These components are not available on ARM right now.
27- RUN if [ `uname -m` = 'x86_64' ]; then echo -n " nomos anthos-auth cloud-spanner-emulator spanner-migration-tool" >> /tmp/additional_components; fi;
28- RUN /google-cloud-sdk/install.sh --bash-completion=false --path-update=true --usage-reporting=false \
29- --additional-components `cat /tmp/additional_components` && rm -rf /google-cloud-sdk/.install/.backup
22+ RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi; \
23+ ARCH=`cat /tmp/arch` && \
24+ if [ -z "$CLOUD_SDK_VERSION" ]; then \
25+ SDK_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-${ARCH}.tar.gz" ; \
26+ SDK_TAR="google-cloud-cli-linux-${ARCH}.tar.gz" ; \
27+ else \
28+ SDK_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz" ; \
29+ SDK_TAR="google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz" ; \
30+ fi && \
31+ curl -O "${SDK_URL}" && \
32+ tar xzf "${SDK_TAR}" && \
33+ rm "${SDK_TAR}" && \
34+ echo -n "anthoscli app-engine-java app-engine-python alpha beta pubsub-emulator cloud-datastore-emulator app-engine-go bigtable cbt app-engine-python-extras kubectl gke-gcloud-auth-plugin kustomize minikube skaffold kpt local-extract cloud-sql-proxy docker-credential-gcr package-go-module cloud-firestore-emulator cloud-run-proxy log-streaming managed-flink-client terraform-tools config-connector enterprise-certificate-proxy istioctl kubectl-oidc pkg" > /tmp/additional_components && \ # These components are not available on ARM right now.
35+ if [ `uname -m` = 'x86_64' ]; then echo -n " nomos anthos-auth cloud-spanner-emulator spanner-migration-tool" >> /tmp/additional_components; fi && \
36+ /google-cloud-sdk/install.sh --bash-completion=false --path-update=true --usage-reporting=false --additional-components `cat /tmp/additional_components` && \
37+ rm -rf /google-cloud-sdk/.install/.backup
3038RUN git config --system credential.'https://source.developers.google.com' .helper gcloud.sh
3139VOLUME ["/root/.config" , "/root/.kube" ]
40+
41+ FROM prod AS test
42+ ARG INSTALL_COMPONENTS_TEST=false
43+ COPY release/ /tmp/cloud-sdk-release
44+ RUN if [ "$INSTALL_COMPONENTS_TEST" = "true" ]; then \
45+ ARCH=`cat /tmp/arch` && \
46+ cp "/tmp/cloud-sdk-release/linux_${ARCH}_components-2.json" "/tmp/cloud-sdk-release/components-2.json" && \
47+ cp "/tmp/cloud-sdk-release/linux_${ARCH}_components-vHEAD.json" "/tmp/cloud-sdk-release/components-vHEAD.json" && \
48+ export CLOUDSDK_COMPONENT_MANAGER_SNAPSHOT_URL="file:///tmp/cloud-sdk-release/components-2.json,file:///tmp/cloud-sdk-release/components-2-TESTING.json" && \
49+ /google-cloud-sdk/install.sh --bash-completion=false --path-update=true --usage-reporting=false && \
50+ gcloud components update && \
51+ gcloud components install TESTING; \
52+ fi
53+
54+ FROM ${FINAL_STAGE}
0 commit comments