#!/usr/bin/env bash # Baut das Docker-Image und legt es als versionierten Tar in dist/ ab. # Verwendung: # bin/build-image.sh # baut mit Version aus app/__init__.py # bin/build-image.sh --load # baut + laedt direkt in lokales Docker # VERSION=0.6.0 bin/build-image.sh # baut mit expliziter Version set -euo pipefail cd "$(dirname "$0")/.." # Version aus app/__init__.py lesen, falls nicht via env ueberschrieben if [ -z "${VERSION:-}" ]; then VERSION=$(python3 bin/get-version.py) fi IMAGE="watchstack:${VERSION}" TAR="dist/watchstack-${VERSION}.docker.tar" mkdir -p dist echo ">> Building ${IMAGE}" docker build -t "${IMAGE}" . if [ "${1:-}" = "--load" ]; then echo ">> Loaded into local Docker as ${IMAGE}" exit 0 fi echo ">> Saving to ${TAR}" docker save -o "${TAR}" "${IMAGE}" # Manifest schreiben bash bin/write-manifest.sh >/dev/null echo ">> Wrote dist/manifest.json" echo ">> Done. Size:" du -h "${TAR}" echo echo "Hinweis: Statt Tar ins Repo zu legen wird das Image normalerweise" echo "in die Gitea Container Registry gepusht -> bin/build-and-push.sh" echo "" echo "Lokal nutzbar via:" echo " docker load -i ${TAR}"