CI / test (push) Has been cancelled
- bin/build-and-push.sh: baut + pusht Image in die Gitea-Registry unter git.pkop.de/vibecode/watchlist:<version> - bin/get-version.py: liest __version__ aus app/__init__.py (single source of truth, kein Quoting-Wahnsinn in Bash) - bin/build-image.sh + write-manifest.sh nutzen den neuen Helper - dist/README.md: erklärt die Registry-Policy (kein Tar im Repo) - load-image.sh entfernt — Tars gibt's nicht mehr - .gitignore: dist/*.tar + manifest.json ausschließen, dist/README.md bleibt dokumentiert - docker-compose.yml: Hinweis auf Registry-Image - CI-Workflow: vereinfacht, Push läuft lokal (idempotent) - Version auf 0.5.1-beta gebumpt Verifiziert end-to-end: bin/build-and-push.sh -> Image in Gitea-Registry docker rmi ... -> lokal weg docker pull ... -> aus Registry gezogen docker run ... -> startet, version 0.5.1-beta, 8 unique Items
41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/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}"
|