This commit is contained in:
2026-08-18 09:37:59 +02:00
parent 8726ce1a45
commit ab5c611338
5 changed files with 112 additions and 74 deletions
+47 -23
View File
@@ -1,49 +1,73 @@
#!/usr/bin/env bash
set -Eeuo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
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 <<USAGE
if [[ -z "${REGISTRY}" || -z "${IMAGE_PATH}" ]]; then
cat <<'EOF'
Verwendung:
$0 <registry> <owner/image> [tag]
./build-and-push-gitea.sh <registry> <owner/image> [tag] [zweiter-tag]
Beispiel:
$0 git.example.de meinuser/fixfin latest
./build-and-push-gitea.sh git.d-razz.de michael/fixfin V3.3 latest
Alternativ per Umgebungsvariablen:
GITEA_REGISTRY=git.example.de \\
GITEA_IMAGE_PATH=meinuser/fixfin \\
IMAGE_TAG=latest \\
$0
Vor dem ersten Push anmelden:
sudo docker login <registry>
USAGE
Einmalige Registry-Anmeldung:
docker login git.d-razz.de -u michael
EOF
exit 1
fi
command -v docker >/dev/null 2>&1 || { echo "Docker fehlt."; exit 1; }
docker buildx version >/dev/null 2>&1 || { echo "Docker Buildx fehlt."; exit 1; }
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 \
--platform "$PLATFORM" \
--tag "$FULL_IMAGE" \
--push \
.
cd "${ROOT}"
docker buildx build "${BUILD_ARGS[@]}"
echo
echo "Fertig: ${FULL_IMAGE}"
echo "Fertig:"
echo " ${FULL_IMAGE}"
if [[ -n "${SECOND_TAG}" ]]; then
echo " ${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}"
fi