Skip to content

Commit

Permalink
#268 Support arm for emulators image
Browse files Browse the repository at this point in the history
  • Loading branch information
willfaris committed Mar 26, 2022
1 parent 6be8e4c commit 694badb
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 15 deletions.
14 changes: 5 additions & 9 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ steps:
waitFor: ['-']
- name: 'gcr.io/cloud-builders/docker'
id: emulators
args: ['build', '-t', 'google/cloud-sdk:emulators', '-t', 'google/cloud-sdk:$TAG_NAME-emulators', '-t', 'gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', 'emulators/']
args: ['build', '-t', 'google/cloud-sdk:emulators', '-t', 'google/cloud-sdk:$TAG_NAME-emulators', '-t', 'gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME-emulators', 'emulators/']
waitFor: ['-']
# END OF PROD BUILDING STEPS
- name: 'gcr.io/cloud-builders/docker'
Expand All @@ -55,6 +55,10 @@ steps:
id: multi_arch_alpine
args: ['buildx', 'build', '--platform', 'linux/arm64,linux/amd64', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-alpine', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-alpine', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-alpine', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-alpine', 'alpine/', '--push']
waitFor: ['multi_arch_step3']
- name: 'gcr.io/cloud-builders/docker'
id: multi_arch_emulators
args: ['buildx', 'build', '--platform', 'linux/arm64,linux/amd64', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators', '-t', 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators', 'emulators/', '--push']
waitFor: ['multi_arch_step3']
- name: 'gcr.io/cloud-builders/docker'
id: dockersecret
entrypoint: 'bash'
Expand Down Expand Up @@ -102,9 +106,7 @@ images:
- 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
- 'asia.gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-slim'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:latest'
- 'asia.gcr.io/google.com/cloudsdktool/google-cloud-cli:slim'
- 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME'
Expand All @@ -118,9 +120,7 @@ images:
- 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
- 'eu.gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-slim'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:latest'
- 'eu.gcr.io/google.com/cloudsdktool/google-cloud-cli:slim'
- 'gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME'
Expand All @@ -134,9 +134,7 @@ images:
- 'gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
- 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-slim'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:latest'
- 'gcr.io/google.com/cloudsdktool/google-cloud-cli:slim'
- 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:$TAG_NAME'
Expand All @@ -150,9 +148,7 @@ images:
- 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
- 'us.gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-emulators'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:$TAG_NAME-slim'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:latest'
- 'us.gcr.io/google.com/cloudsdktool/google-cloud-cli:slim'
secrets:
Expand Down
16 changes: 11 additions & 5 deletions emulators/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,28 @@ ENV PATH /google-cloud-sdk/bin:$PATH
RUN groupadd -r -g 1000 cloudsdk && \
useradd -r -u 1000 -m -s /bin/bash -g cloudsdk cloudsdk

RUN mkdir -p /usr/share/man/man1/ && \
RUN echo -n "cloud-datastore-emulator cloud-firestore-emulator pubsub-emulator bigtable" > /tmp/additional_components
RUN if [ `uname -m` = 'x86_64' ]; then echo -n " cloud-spanner-emulator" >> /tmp/additional_components; fi;
RUN cat /tmp/additional_components
RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi;

RUN ARCH=`cat /tmp/arch` && \
mkdir -p /usr/share/man/man1/ && \
apt-get update && \
apt-get -y install \
curl \
python3 \
python3-crcmod \
bash \
openjdk-11-jre-headless && \
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
tar xzf google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
rm google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
tar xzf google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
rm google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
gcloud config set core/disable_usage_reporting true && \
gcloud config set component_manager/disable_update_check true && \
gcloud config set metrics/environment github_docker_image_emulator && \
gcloud components remove anthoscli && \
gcloud components install beta cloud-datastore-emulator cloud-firestore-emulator pubsub-emulator cloud-spanner-emulator bigtable && \
gcloud components install beta `cat /tmp/additional_components` && \
rm /google-cloud-sdk/data/cli/gcloud.json && \
rm -rf /google-cloud-sdk/.install/.backup/ && \
find /google-cloud-sdk/ -name "__pycache__" -type d | xargs -n 1 rm -rf
Expand Down
2 changes: 1 addition & 1 deletion generate_cloudbuild.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
OLD_NAME='cloud-sdk'
REBRAND_NAME='google-cloud-cli'
IMAGES=['alpine', 'debian_slim', 'default', 'debian_component_based', 'emulators']
MULTI_ARCH=['debian_component_based', 'alpine']
MULTI_ARCH=['debian_component_based', 'alpine', 'emulators']
LABEL_FOR_IMAGE={
'alpine': 'alpine',
'debian_slim': 'slim',
Expand Down

0 comments on commit 694badb

Please sign in to comment.