Files
fixfin/build-and-push-gitea.sh
2026-08-18 09:37:59 +02:00

74 lines
1.5 KiB
Bash
Executable File

#!/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 <registry> <owner/image> [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