b2f6fa0993
Alle vier Skripte schieben das gebaute Image jetzt auch nach gitea.fuerst-stuttgart.de/admin, damit es nicht nur an einer Stelle liegt. Der zweite Push laeuft nach dem ersten und ist bewusst nicht fatal: schlaegt er fehl, liegt das Image bereits in docker.citysensor.de, aus der der Stack zieht. Das Skript meldet dann nur, dass die Zweitablage fehlt, statt den ganzen Deploy als gescheitert auszuweisen. Abschalten mit REGISTRY2= ./deploy.sh Voraussetzung ist ein docker login gitea.fuerst-stuttgart.de (Access Token mit write:package genuegt). Geprueft: noise, sensorapi, readarchive und readin liegen in beiden Registries unter demselben Digest. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
88 lines
3.1 KiB
Bash
Executable File
88 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Angepasst aus readin/deploy.sh
|
|
# Unterschied: Build-Kontext ist das Repository-Wurzelverzeichnis, weil
|
|
# readarchive und readin sich die Module unter common/ teilen.
|
|
|
|
REGISTRY="docker.citysensor.de"
|
|
# Zweite Registry (Gitea). Das Image wird dorthin zusaetzlich gepusht, damit es
|
|
# nicht nur an einer Stelle liegt. Leersetzen schaltet den zweiten Push ab:
|
|
# REGISTRY2= ./deploy.sh
|
|
REGISTRY2="${REGISTRY2-gitea.fuerst-stuttgart.de/admin}"
|
|
IMAGE_NAME="readarchive"
|
|
TAG="${1:-latest}"
|
|
PLATFORM="linux/amd64"
|
|
DOCKERFILE="readarchive/Dockerfile_readarchive"
|
|
FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${TAG}"
|
|
BUILD_DATE=$(date +%d.%m.%Y)
|
|
|
|
# ins Repository-Wurzelverzeichnis wechseln (eine Ebene ueber diesem Skript)
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "=========================================="
|
|
echo "readarchive Deploy Script (amd64)"
|
|
echo "=========================================="
|
|
echo "Registry: ${REGISTRY}"
|
|
echo "Image: ${IMAGE_NAME}"
|
|
echo "Tag: ${TAG}"
|
|
echo "Platform: ${PLATFORM}"
|
|
echo "Dockerfile: ${DOCKERFILE}"
|
|
echo "Kontext: $(pwd)"
|
|
echo "Build-Datum: ${BUILD_DATE}"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Hinweis: Login wird uebersprungen, weil die Credentials fuer ${REGISTRY}
|
|
# bereits in ~/.docker/config.json liegen (Container laufen bereits aus dieser Registry).
|
|
# Bei Bedarf manuell: docker login ${REGISTRY}
|
|
|
|
echo ">>> Baue Image (nur ${PLATFORM}, nativ) ..."
|
|
docker build \
|
|
--platform "${PLATFORM}" \
|
|
-f "${DOCKERFILE}" \
|
|
-t "${FULL_IMAGE}" \
|
|
.
|
|
echo ""
|
|
|
|
echo ">>> Pushe ${FULL_IMAGE} ..."
|
|
docker push "${FULL_IMAGE}"
|
|
echo ""
|
|
|
|
# Falls ein anderer Tag als 'latest' gebaut wurde, zusaetzlich latest setzen+pushen
|
|
if [ "${TAG}" != "latest" ]; then
|
|
echo ">>> Tagge zusaetzlich als :latest ..."
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY}/${IMAGE_NAME}:latest"
|
|
docker push "${REGISTRY}/${IMAGE_NAME}:latest"
|
|
echo ""
|
|
fi
|
|
|
|
# Dasselbe Image zusaetzlich in die zweite Registry. Ein Fehlschlag bricht das
|
|
# Skript nicht ab: in ${REGISTRY} liegt das Image dann bereits, der Stack kann
|
|
# es also ziehen - die Meldung sagt nur, dass die Zweitablage fehlt.
|
|
if [ -n "${REGISTRY2}" ]; then
|
|
echo ">>> Pushe zusaetzlich nach ${REGISTRY2}/${IMAGE_NAME} ..."
|
|
ok=true
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY2}/${IMAGE_NAME}:${TAG}"
|
|
docker push "${REGISTRY2}/${IMAGE_NAME}:${TAG}" || ok=false
|
|
if [ "${ok}" = true ] && [ "${TAG}" != "latest" ]; then
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY2}/${IMAGE_NAME}:latest"
|
|
docker push "${REGISTRY2}/${IMAGE_NAME}:latest" || ok=false
|
|
fi
|
|
if [ "${ok}" != true ]; then
|
|
echo "!!! Push nach ${REGISTRY2} fehlgeschlagen."
|
|
echo "!!! Angemeldet? docker login ${REGISTRY2%%/*}"
|
|
echo "!!! ${FULL_IMAGE} ist gepusht und einsetzbar."
|
|
fi
|
|
echo ""
|
|
fi
|
|
|
|
echo "=========================================="
|
|
echo "Build + Push fertig: ${FULL_IMAGE}"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "readarchive ist kein Dauerdienst, sondern ein Lauf mit Parametern:"
|
|
echo " cd /opt/stacks/esprimo/noisesensors"
|
|
echo " docker compose run --rm readarchive -t noise -s 2026-07-25 -e 2026-07-29"
|