diff --git a/.gitea/workflows/docker-builder.yml b/.gitea/workflows/docker-builder.yml index 2ba479a..1643f21 100644 --- a/.gitea/workflows/docker-builder.yml +++ b/.gitea/workflows/docker-builder.yml @@ -8,7 +8,7 @@ on: jobs: build: - name: Build amd64 & arm64 + name: Build amd64 & arm64 separately runs-on: buildx-multiarch steps: @@ -17,9 +17,7 @@ jobs: - name: Set image tag from branch run: | - # hole den Branch-Namen über Git VERSION=$(git rev-parse --abbrev-ref HEAD) - if [ -z "$VERSION" ]; then echo "ERROR: could not determine branch name" exit 1 @@ -34,24 +32,49 @@ jobs: -u ${{ secrets.REGISTRY_USER }} \ --password-stdin - - name: Setup buildx multiarch + # Buildx Setup ist weiterhin notwendig für Caching und Performance, + # auch wenn wir nicht mehr das Multi-Platform-Feature direkt im Build nutzen. + - name: Setup buildx run: | docker buildx rm multiarch || true - docker buildx create \ --name multiarch \ --driver docker-container \ --use docker buildx inspect --bootstrap - + + # SCHRITT 1: AMD64 bauen und mit Suffix -amd64 pushen + # Nutzt 'Dockerfile' - name: Build & push amd64 run: | docker buildx build \ - --platform linux/arm64,linux/amd64 \ + --platform linux/amd64 \ -f Dockerfile \ --build-arg BUILD_DATE=${BUILD_DATE} \ --build-arg VERSION=${VERSION} \ - -t git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION} \ + -t git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION}-amd64 \ --push \ . - \ No newline at end of file + + # SCHRITT 2: ARM64 bauen und mit Suffix -arm64 pushen + # Nutzt 'Dockerfile.aarch64' + - name: Build & push arm64 + run: | + docker buildx build \ + --platform linux/arm64 \ + -f Dockerfile.aarch64 \ + --build-arg BUILD_DATE=${BUILD_DATE} \ + --build-arg VERSION=${VERSION} \ + -t git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION}-arm64 \ + --push \ + . + + # SCHRITT 3: Manifest erstellen und pushen + # Klebt die beiden Images (amd64 + arm64) zusammen zum finalen Tag + - name: Create and push manifest + run: | + # Manifest erstellen + docker buildx imagetools create \ + -t git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION} \ + git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION}-amd64 \ + git.pi-farm.de/pi-farm/docker-baseimage-alpine:${VERSION}-arm64 \ No newline at end of file