#!/bin/bash # Deploy Script für auto_charger # Baut die beiden Docker Images (collector + web) und lädt sie zu # docker.citysensor.de hoch. Ziel-Plattform ist linux/amd64 (nuccy). set -e # Konfiguration REGISTRY="docker.citysensor.de" TAG="${1:-latest}" # Erster Parameter oder "latest" BUILD_DATE=$(date +%d.%m.%Y) COLLECTOR_IMAGE="${REGISTRY}/auto-charger-collector:${TAG}" WEB_IMAGE="${REGISTRY}/auto-charger-web:${TAG}" # In das Verzeichnis dieses Skripts wechseln (Build-Kontexte sind relativ) cd "$(dirname "$0")" echo "==========================================" echo "auto_charger Deploy Script" echo "==========================================" echo "Registry: ${REGISTRY}" echo "Tag: ${TAG}" echo "Build-Datum: ${BUILD_DATE}" echo "Images: auto-charger-collector, auto-charger-web" echo "==========================================" echo "" # 1. Login zur Registry (falls noch nicht eingeloggt) echo ">>> Login zu ${REGISTRY}..." docker login "${REGISTRY}" echo "" # 2. Collector-Image bauen (linux/amd64) echo ">>> Baue collector-Image (linux/amd64)..." docker build \ --platform linux/amd64 \ -t "${COLLECTOR_IMAGE}" \ ./collector echo "" # 3. Web-Image bauen (linux/amd64, mit Build-Datum für die Fußzeile) echo ">>> Baue web-Image (linux/amd64)..." docker build \ --platform linux/amd64 \ --build-arg BUILD_DATE="${BUILD_DATE}" \ -t "${WEB_IMAGE}" \ ./web echo "" # 4. Beide Images pushen echo ">>> Pushe ${COLLECTOR_IMAGE}..." docker push "${COLLECTOR_IMAGE}" echo ">>> Pushe ${WEB_IMAGE}..." docker push "${WEB_IMAGE}" echo ">>> Build und Push erfolgreich!" echo "" echo "==========================================" echo "✓ Deploy erfolgreich abgeschlossen!" echo "==========================================" echo "" echo "Auf nuccy ausführen (Verzeichnis mit docker-compose.prod.yml + .env):" echo " docker compose -f docker-compose.prod.yml pull" echo " docker compose -f docker-compose.prod.yml up -d" echo ""