#!/usr/bin/env bash # Baut das Multi-Arch-Image (amd64 + arm64) und schiebt es in die # Container-Registry von Gitea. # # docker login git.everdc.eu # einmalig, Gitea-User + Token mit write:package # deploy/push-image.sh # Tag aus `git describe` # LATEST=1 deploy/push-image.sh # zusätzlich :latest setzen (nur für Releases) # # Ergebnis: ${REGISTRY}/${OWNER}/sultan: (und ggf. :latest) set -euo pipefail cd "$(dirname "$0")/.." REGISTRY="${REGISTRY:-git.everdc.eu}" OWNER="${OWNER:-chmln-app-dev}" IMAGE="${REGISTRY}/${OWNER}/sultan" VERSION="${VERSION:-$(git describe --tags --always --dirty)}" PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}" case "$VERSION" in *-dirty) echo "Arbeitsverzeichnis hat uncommittete Änderungen (${VERSION}) – erst committen." >&2 exit 1 ;; esac tags=(-t "${IMAGE}:${VERSION}") if [ "${LATEST:-0}" = 1 ]; then tags+=(-t "${IMAGE}:latest") fi # Multi-Arch-Builds brauchen einen buildx-Builder mit docker-container-Treiber. if ! docker buildx inspect sultan-builder >/dev/null 2>&1; then docker buildx create --name sultan-builder --driver docker-container >/dev/null fi docker buildx build --builder sultan-builder \ --platform "$PLATFORMS" \ --build-arg VERSION="$VERSION" \ "${tags[@]}" \ --push . echo "==> gepusht: ${IMAGE}:${VERSION}" docker buildx imagetools inspect "${IMAGE}:${VERSION}" | head -n 3