Skip to content

Commit 954c962

Browse files
committed
feat(build): create multiplatform image
Signed-off-by: Tomas Pilar <[email protected]>
1 parent 409f20f commit 954c962

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed

.github/workflows/docker-image.yml

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -93,25 +93,34 @@ jobs:
9393
restore-keys: ${{ runner.os }}-buildx-
9494

9595
# -------------------------------------------------------------
96-
# 3️⃣ Build & tag image (timestamp + latest)
96+
# Build & push image (timestamp + latest)
9797
# -------------------------------------------------------------
98+
99+
- name: 🔑 Log in to GHCR
100+
uses: docker/login-action@v3
101+
with:
102+
registry: ghcr.io
103+
username: ${{ github.actor }}
104+
password: ${{ secrets.GITHUB_TOKEN }}
105+
98106
- name: 🏗️ Build Docker image
99107
env:
100108
DOCKER_CONTENT_TRUST: "1"
101109
run: |
102110
TAG=$(date +%s)
103111
echo "TAG=$TAG" >> "$GITHUB_ENV"
104112
docker buildx build \
113+
--platform linux/amd64,linux/arm64 \
105114
--file Containerfile.lite \
106115
--tag $IMAGE_NAME:$TAG \
107116
--tag $IMAGE_NAME:latest \
108117
--cache-from type=local,src=${{ env.CACHE_DIR }} \
109118
--cache-to type=local,dest=${{ env.CACHE_DIR }},mode=max \
110-
--load \
119+
--push \
111120
. # build context is mandatory
112121
113122
# -------------------------------------------------------------
114-
# 4️⃣ Image lint (Dockle CLI → SARIF)
123+
# Image lint (Dockle CLI → SARIF)
115124
# -------------------------------------------------------------
116125
- name: 🔍 Image lint (Dockle)
117126
id: dockle
@@ -133,7 +142,7 @@ jobs:
133142
sarif_file: dockle-results.sarif
134143

135144
# -------------------------------------------------------------
136-
# 5️⃣ Generate SPDX SBOM with Syft
145+
# Generate SPDX SBOM with Syft
137146
# -------------------------------------------------------------
138147
- name: 📄 Generate SBOM (Syft)
139148
uses: anchore/sbom-action@v0
@@ -142,7 +151,7 @@ jobs:
142151
output-file: sbom.spdx.json
143152

144153
# -------------------------------------------------------------
145-
# 6️⃣ Trivy CVE scan → SARIF
154+
# Trivy CVE scan → SARIF
146155
# -------------------------------------------------------------
147156
- name: 🛡️ Trivy vulnerability scan
148157
id: trivy
@@ -160,23 +169,9 @@ jobs:
160169
with:
161170
sarif_file: trivy-results.sarif
162171

163-
# -------------------------------------------------------------
164-
# 7️⃣ Push both tags to GHCR
165-
# -------------------------------------------------------------
166-
- name: 🔑 Log in to GHCR
167-
uses: docker/login-action@v3
168-
with:
169-
registry: ghcr.io
170-
username: ${{ github.actor }}
171-
password: ${{ secrets.GITHUB_TOKEN }}
172-
173-
- name: 🚀 Push image to GHCR
174-
run: |
175-
docker push $IMAGE_NAME:${{ env.TAG }}
176-
docker push $IMAGE_NAME:latest
177172

178173
# -------------------------------------------------------------
179-
# 8️⃣ Key-less Cosign sign + attest (latest **and** timestamp)
174+
# Key-less Cosign sign + attest (latest **and** timestamp)
180175
# -------------------------------------------------------------
181176
- name: 📥 Install Cosign
182177
uses: sigstore/cosign-installer@v3 # provides the matching CLI
@@ -197,7 +192,7 @@ jobs:
197192
done
198193
199194
# -------------------------------------------------------------
200-
# 9️⃣ Single gate - fail job on any scanner error
195+
# Single gate - fail job on any scanner error
201196
# -------------------------------------------------------------
202197
- name: ⛔ Enforce lint & vuln gates
203198
if: |

Containerfile.lite

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ ARG ROOTFS_PATH
4545
RUN set -euo pipefail \
4646
&& dnf upgrade -y \
4747
&& dnf install -y \
48-
python${PYTHON_VERSION} \
49-
python${PYTHON_VERSION}-devel \
48+
python${PYTHON_VERSION} \
49+
python${PYTHON_VERSION}-devel \
5050
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
5151
&& dnf clean all
5252

@@ -75,8 +75,8 @@ RUN set -euo pipefail \
7575
&& mkdir -p "${ROOTFS_PATH}" \
7676
&& dnf --installroot="${ROOTFS_PATH}" --releasever=9 upgrade -y \
7777
&& dnf --installroot="${ROOTFS_PATH}" --releasever=9 install -y \
78-
--setopt=install_weak_deps=0 \
79-
python${PYTHON_VERSION} \
78+
--setopt=install_weak_deps=0 \
79+
python${PYTHON_VERSION} \
8080
&& dnf clean all --installroot="${ROOTFS_PATH}"
8181

8282
# ----------------------------------------------------------------------------

0 commit comments

Comments
 (0)