Skip to content

Commit 9a6117f

Browse files
authored
Merge pull request #607 from GoogleCloudPlatform/s4shyam95-patch-2
Update Dockerfile for alpine and all_component to allow a non-default (optional) stage that includes TESTING component.
2 parents e928900 + 1e0a004 commit 9a6117f

File tree

2 files changed

+63
-17
lines changed

2 files changed

+63
-17
lines changed

all_components/Dockerfile

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM marketplace.gcr.io/google/debian12:latest
1+
ARG FINAL_STAGE=prod
2+
FROM marketplace.gcr.io/google/debian12:latest AS prod
23
ARG CLOUD_SDK_VERSION
34
ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
45
ENV 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
3038
RUN git config --system credential.'https://source.developers.google.com'.helper gcloud.sh
3139
VOLUME ["/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}

alpine/Dockerfile

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
FROM alpine:3.20
1+
ARG FINAL_STAGE=prod
2+
FROM alpine:3.20 AS prod
23
ARG CLOUD_SDK_VERSION
34
ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
45
ENV PATH /google-cloud-sdk/bin:$PATH
56
RUN addgroup -g 1000 -S cloudsdk && \
67
adduser -u 1000 -S cloudsdk -G cloudsdk
7-
RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi;
8-
RUN ARCH=`cat /tmp/arch` && apk --no-cache upgrade && apk --no-cache add \
8+
RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi; \
9+
ARCH=`cat /tmp/arch` && apk --no-cache upgrade && apk --no-cache add \
910
curl \
1011
python3 \
1112
py3-crcmod \
@@ -15,15 +16,37 @@ RUN ARCH=`cat /tmp/arch` && apk --no-cache upgrade && apk --no-cache add \
1516
openssh-client \
1617
git \
1718
gnupg \
18-
&& curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
19-
tar xzf google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
20-
rm google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
19+
&& \
20+
if [ -z "$CLOUD_SDK_VERSION" ]; then \
21+
SDK_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-${ARCH}.tar.gz"; \
22+
SDK_TAR="google-cloud-cli-linux-${ARCH}.tar.gz"; \
23+
else \
24+
SDK_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz"; \
25+
SDK_TAR="google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz"; \
26+
fi && \
27+
curl -O "${SDK_URL}" && \
28+
tar xzf "${SDK_TAR}" && \
29+
rm "${SDK_TAR}" && \
2130
gcloud config set core/disable_usage_reporting true && \
2231
gcloud config set component_manager/disable_update_check true && \
2332
gcloud config set metrics/environment docker_image_alpine && \
2433
gcloud --version && \
25-
gsutil version -l && \
34+
gsutil version -l && \
2635
bq version && \
2736
gcloud-crc32c /google-cloud-sdk/bin/gcloud
2837
RUN git config --system credential.'https://source.developers.google.com'.helper gcloud.sh
2938
VOLUME ["/root/.config"]
39+
40+
FROM prod AS test
41+
ARG INSTALL_COMPONENTS_TEST=false
42+
COPY release/ /tmp/cloud-sdk-release
43+
RUN if [ "$INSTALL_COMPONENTS_TEST" = "true" ]; then \
44+
ARCH=`cat /tmp/arch` && \
45+
cp "/tmp/cloud-sdk-release/linux_${ARCH}_components-2.json" "/tmp/cloud-sdk-release/components-2.json" && \
46+
cp "/tmp/cloud-sdk-release/linux_${ARCH}_components-vHEAD.json" "/tmp/cloud-sdk-release/components-vHEAD.json" && \
47+
export CLOUDSDK_COMPONENT_MANAGER_SNAPSHOT_URL="file:///tmp/cloud-sdk-release/components-2.json,file:///tmp/cloud-sdk-release/components-2-TESTING.json" && \
48+
gcloud components update && \
49+
gcloud components install TESTING; \
50+
fi
51+
52+
FROM ${FINAL_STAGE}

0 commit comments

Comments
 (0)