Skip to content

Commit d5f7cbd

Browse files
Create a minimal image without gcloud and save one GB (#38)
1 parent 5743286 commit d5f7cbd

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

.github/workflows/docker.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,18 @@ jobs:
4040
[ "${GITHUB_EVENT_NAME}" == 'release' ] && echo "tag=${GITHUB_REF##*/}" >> $GITHUB_ENV || true
4141
[ "${GITHUB_EVENT_NAME}" == 'push' ] && echo "tag=latest" >> $GITHUB_ENV || true
4242
43-
- name: Build and push image
44-
uses: docker/build-push-action@v5
43+
- name: Build and push minimal image
44+
uses: docker/build-push-action@v6
45+
with:
46+
context: .
47+
push: true
48+
tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ env.tag }}-minimal
49+
target: minimal
50+
51+
- name: Build and push gcloud image
52+
uses: docker/build-push-action@v6
4553
with:
4654
context: .
4755
push: true
4856
tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ env.tag }}
57+
target: gcloud

Dockerfile

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
FROM python:3.11-slim
1+
FROM python:3.11-slim AS minimal
22

33
ENV VERSION_CT=0.9.0 \
4-
VERSION_HELM=3.12.3 \
5-
CLOUD_SDK_VERSION=465.0.0
6-
7-
ENV PATH /google-cloud-sdk/bin:$PATH
4+
VERSION_HELM=3.12.3
85

96
RUN set -x \
107
&& apt-get update \
@@ -17,15 +14,6 @@ RUN set -x \
1714
openssh-client \
1815
rsync \
1916
&& rm -rf /var/lib/apt/lists/* \
20-
&& curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
21-
&& tar xzf google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
22-
&& rm google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
23-
&& gcloud config set core/disable_usage_reporting true \
24-
&& gcloud config set component_manager/disable_update_check true \
25-
&& gcloud config set metrics/environment github_docker_image \
26-
&& gcloud components install gke-gcloud-auth-plugin \
27-
&& rm -rf /google-cloud-sdk/.install/.backup \
28-
&& gcloud --version \
2917
&& curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash -s -- --version "v${VERSION_HELM}" \
3018
&& helm plugin install https://github.com/databus23/helm-diff \
3119
&& python3 -m pip install --disable-pip-version-check --no-cache-dir \
@@ -40,9 +28,24 @@ RUN set -x \
4028
passlib==1.7.4 \
4129
&& curl -Lo ct https://github.com/coreos/container-linux-config-transpiler/releases/download/v${VERSION_CT}/ct-v${VERSION_CT}-x86_64-unknown-linux-gnu \
4230
&& chmod +x ct \
43-
&& mv ct /usr/local/bin/ \
44-
&& rm -rf /tmp/*
31+
&& mv ct /usr/local/bin/
4532

4633
COPY ansible.cfg /etc/ansible/ansible.cfg
4734

4835
ENTRYPOINT []
36+
37+
FROM minimal AS gcloud
38+
39+
ENV CLOUD_SDK_VERSION=465.0.0
40+
41+
ENV PATH=/google-cloud-sdk/bin:$PATH
42+
43+
RUN curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
44+
&& tar xzf google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
45+
&& rm google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz \
46+
&& gcloud config set core/disable_usage_reporting true \
47+
&& gcloud config set component_manager/disable_update_check true \
48+
&& gcloud config set metrics/environment github_docker_image \
49+
&& gcloud components install gke-gcloud-auth-plugin \
50+
&& rm -rf /google-cloud-sdk/.install/.backup \
51+
&& gcloud --version

0 commit comments

Comments
 (0)