50 lines
1.0 KiB
Bash
Executable File
50 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
REGISTRY="${GITEA_REGISTRY:-${1:-}}"
|
|
IMAGE_PATH="${GITEA_IMAGE_PATH:-${2:-}}"
|
|
TAG="${IMAGE_TAG:-${3:-latest}}"
|
|
PLATFORM="${PLATFORM:-linux/amd64}"
|
|
|
|
if [[ -z "$REGISTRY" || -z "$IMAGE_PATH" ]]; then
|
|
cat <<USAGE
|
|
Verwendung:
|
|
$0 <registry> <owner/image> [tag]
|
|
|
|
Beispiel:
|
|
$0 git.example.de meinuser/fixfin 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
|
|
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; }
|
|
|
|
FULL_IMAGE="${REGISTRY}/${IMAGE_PATH}:${TAG}"
|
|
|
|
echo ">>> Build + Push"
|
|
echo "Image: ${FULL_IMAGE}"
|
|
echo "Platform: ${PLATFORM}"
|
|
echo
|
|
|
|
cd "$ROOT"
|
|
docker buildx build \
|
|
--platform "$PLATFORM" \
|
|
--tag "$FULL_IMAGE" \
|
|
--push \
|
|
.
|
|
|
|
echo
|
|
echo "Fertig: ${FULL_IMAGE}"
|