Skip to content

Commit b377cb0

Browse files
committed
chore: add gcloud, aws and azure CLI's
1 parent 2f427b2 commit b377cb0

1 file changed

Lines changed: 71 additions & 1 deletion

File tree

Dockerfile

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,82 @@ RUN make build
1414
FROM debian:bookworm
1515

1616
WORKDIR /app
17+
ENV DEBIAN_FRONTEND=noninteractive
1718

1819
RUN --mount=type=cache,target=/var/lib/apt \
1920
--mount=type=cache,target=/var/cache/apt \
2021
apt-get update && \
21-
apt-get install --no-install-recommends -y curl less locales ca-certificates
22+
apt-get install --no-install-recommends -y curl unzip ca-certificates zip tzdata wget gnupg2 bzip2 apt-transport-https locales locales-all lsb-release git python3-crcmod python3-openssl
2223

24+
RUN locale-gen en_US.UTF-8
25+
RUN update-locale LANG=en_US.UTF-8
26+
27+
# stern, jq, yq
28+
RUN curl -sLS https://get.arkade.dev | sh && \
29+
arkade get kubectl jq yq sops --path /usr/bin && \
30+
chmod +x /usr/bin/kubectl /usr/bin/jq /usr/bin/yq /usr/bin/sops
31+
32+
# Minimalized Google cloud sdk
33+
FROM base AS gcloud-installer
34+
35+
ENV GCLOUD_PATH=/opt/google-cloud-sdk
36+
ENV PATH $GCLOUD_PATH/bin:$PATH
37+
ENV CLOUDSDK_PYTHON=/usr/bin/python3
38+
# Download and install cloud sdk. Review the components I install, you may not need them.
39+
RUN GCLOUDCLI_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz" && \
40+
if [ "${TARGETARCH}" = "arm64" ]; then \
41+
GCLOUDCLI_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-arm.tar.gz"; \
42+
fi && \
43+
curl $GCLOUDCLI_URL -o gcloud.tar.gz && \
44+
tar xzf gcloud.tar.gz -C /opt && \
45+
rm gcloud.tar.gz && \
46+
rm -rf $GCLOUD_PATH/platform/bundledpythonunix && \
47+
gcloud config set core/disable_usage_reporting true && \
48+
gcloud config set component_manager/disable_update_check true && \
49+
gcloud config set metrics/environment github_docker_image && \
50+
gcloud components remove -q bq && \
51+
gcloud components install -q beta kubectl-oidc gke-gcloud-auth-plugin && \
52+
rm -rf $(find $GCLOUD_PATH/ -regex ".*/__pycache__") && \
53+
rm -rf $GCLOUD_PATH/.install/.backup && \
54+
rm -rf $GCLOUD_PATH/bin/anthoscli && \
55+
gcloud --version
56+
57+
58+
FROM base AS final
59+
60+
# Install all locales
61+
62+
63+
ENV PATH /opt/google-cloud-sdk/bin:$PATH
64+
ENV CLOUDSDK_PYTHON=/usr/bin/python3
65+
COPY --from=gcloud-installer /opt/google-cloud-sdk /opt/google-cloud-sdk
66+
# This is to be able to update gcloud packages
67+
RUN git config --system credential.'https://source.developers.google.com'.helper gcloud.sh
68+
69+
70+
# Azure CLI
71+
RUN mkdir -p /etc/apt/keyrings && \
72+
curl -sLS https://packages.microsoft.com/keys/microsoft.asc | \
73+
gpg --dearmor | tee /etc/apt/keyrings/microsoft.gpg > /dev/null && \
74+
chmod go+r /etc/apt/keyrings/microsoft.gpg && \
75+
echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/azure-cli.list && \
76+
cat /etc/apt/sources.list.d/azure-cli.list && \
77+
apt-get update && \
78+
apt-get install -y azure-cli && \
79+
apt-get clean && \
80+
rm -rf $(find /opt/az -regex ".*/__pycache__") && \
81+
az version
82+
83+
# AWS CLI
84+
RUN AWSCLI_URL="https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" && \
85+
if [ "${TARGETARCH}" = "arm64" ]; then \
86+
AWSCLI_URL="https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"; \
87+
fi && \
88+
curl "${AWSCLI_URL}" -o "awscliv2.zip" && \
89+
unzip -q awscliv2.zip && ./aws/install -i /opt/aws -b /usr/bin/ && \
90+
rm awscliv2.zip && \
91+
rm -rf ./aws && \
92+
aws --version
2393

2494
COPY --from=builder /app/batch-runner /app/batch-runner
2595

0 commit comments

Comments
 (0)