#!/usr/bin/env bash set -Eeuo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REGISTRY="${GITEA_REGISTRY:-${1:-}}" IMAGE_PATH="${GITEA_IMAGE_PATH:-${2:-}}" TAG="${IMAGE_TAG:-${3:-latest}}" SECOND_TAG="${4:-}" PLATFORM="${PLATFORM:-linux/amd64}" if [[ -z "${REGISTRY}" || -z "${IMAGE_PATH}" ]]; then cat <<'EOF' Verwendung: ./build-and-push-gitea.sh [tag] [zweiter-tag] Beispiel: ./build-and-push-gitea.sh git.d-razz.de michael/fixfin V3.3 latest Einmalige Registry-Anmeldung: docker login git.d-razz.de -u michael EOF exit 1 fi command -v docker >/dev/null 2>&1 || { echo "FEHLER: Docker fehlt." exit 1 } docker info >/dev/null 2>&1 || { echo "FEHLER: Docker ist für den aktuellen Benutzer nicht erreichbar." echo "Teste: docker ps" exit 1 } docker buildx version >/dev/null 2>&1 || { echo "FEHLER: Docker Buildx fehlt." exit 1 } FULL_IMAGE="${REGISTRY}/${IMAGE_PATH}:${TAG}" BUILD_ARGS=( --platform "${PLATFORM}" --tag "${FULL_IMAGE}" ) if [[ -n "${SECOND_TAG}" ]]; then BUILD_ARGS+=(--tag "${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}") fi BUILD_ARGS+=(--push .) echo echo ">>> Build + Push" echo "Image: ${FULL_IMAGE}" if [[ -n "${SECOND_TAG}" ]]; then echo "Zusatz: ${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}" fi echo "Platform: ${PLATFORM}" echo cd "${ROOT}" docker buildx build "${BUILD_ARGS[@]}" echo echo "Fertig:" echo " ${FULL_IMAGE}" if [[ -n "${SECOND_TAG}" ]]; then echo " ${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}" fi