fix sign error
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s

This commit is contained in:
2026-02-09 23:46:52 +01:00
parent 62130d6e57
commit 51349ef93e

View File

@@ -252,7 +252,8 @@ jobs:
cosign version cosign version
- name: Sign image - name: Sign image
if: env.IS_TAG == 'true' # Wir führen das aus, wenn gebaut wurde (egal ob Tag oder Main)
if: steps.check_files.outputs.should_build == 'true'
shell: bash shell: bash
env: env:
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }} COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
@@ -260,27 +261,24 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
# Image Name definieren # Welches Image signieren wir? (Tag oder Main)
IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:${VERSION}" if [[ "$IS_TAG" == "true" ]]; then
echo "Signing image $IMAGE_TO_SIGN" IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:${VERSION}"
else
IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:main"
fi
echo "Signing image: $IMAGE_TO_SIGN"
# Den Private Key aus dem Secret in eine Datei schreiben (Cosign braucht das File) # Key aus Secret wiederherstellen
echo "$COSIGN_PRIVATE_KEY" > cosign.key echo "$COSIGN_PRIVATE_KEY" > cosign.key
# Den Digest des Images holen (Sicherer als Tags) # Signieren!
# Wir nutzen hier docker inspect direkt auf das, was wir gerade gebaut haben # --recursive: Signiert den Multi-Arch Index UND die darunterliegenden Images (amd64/arm64)
# Da wir Multiarch gebaut haben, müssen wir vorsichtig sein. # --yes: Keine Rückfragen
# Am sichersten ist es, den Digest remote vom Registry Server zu holen: # Wir übergeben hier direkt das Image mit Tag. Cosign holt sich den Digest selbst.
docker buildx imagetools inspect "${IMAGE_TO_SIGN}" --format '{{json .Manifest}}' > manifest.json cosign sign --yes --recursive --key cosign.key "${IMAGE_TO_SIGN}"
DIGEST=$(docker buildx imagetools inspect "${IMAGE_TO_SIGN}" --format '{{.Manifest.Digest}}')
echo "Signiere Digest: $DIGEST"
# Signieren (rekursiv für Multi-Arch) # Aufräumen
# -y überspringt die Bestätigungsabfrage
# --key verweist auf die Datei, die wir oben aus dem Secret erstellt haben
cosign sign --yes --key cosign.key "${IMAGE_TO_SIGN}@${DIGEST}"
# Aufräumen (Key löschen, sicher ist sicher)
rm cosign.key rm cosign.key