bd5cf9978d
mongo.js, influx_post.js und logit.js lagen in beiden Komponenten doppelt
und waren auseinandergelaufen - so ist der Zeitzonen-Fehler entstanden, den
readin seit jeher richtig loest und readFromcsv.js zwei Jahre lang nicht.
Sie liegen jetzt einmal unter common/.
Wo die Fassungen sich widersprachen:
- MONGOAUTH wird als String verglichen. Die readarchive-Fassung pruefte nur
auf truthy, dadurch schaltete auch MONGOAUTH=false die Auth ein.
- writeDataArray(client, coll, data) nimmt den Collection-Namen direkt;
readarchive baut ihn mit dem neuen dataCollName(styp).
- getallProperties liefert das Array selbst. Die readarchive-Fassung mit
{error, properties} war dort ungenutzt.
- properties_collection heisst einheitlich property_coll.
Das Sammelobjekt statistics lag in readin/readdata.js und wurde von
mongo.js und influx_post.js importiert. Es liegt jetzt in
common/statistics.js, damit die gemeinsamen Module readin nicht kennen
muessen.
Der Build-Kontext beider Images ist dadurch das Repository-Wurzelverzeichnis;
das Layout im Image spiegelt das Repository, damit ../common/... unveraendert
aufgeht. Die Volume-Zeile von readin im Compose zieht deshalb auf
/opt/app/readin/data um.
readarchive folgt jetzt den Konventionen des Stacks: deploy.sh statt
build_and_copy.sh, Dockerfile_readarchive statt Dockerfile_rfcsv, und die
eigene docker-compose.yml entfaellt - der Dienst haengt als Profil "tools"
im Compose des Stacks und wird mit Parametern gestartet:
docker compose run --rm readarchive -t noise -s 2026-07-25 -e 2026-07-29
Getestet: beide Images gebaut, beide gegen Testdatenbanken laufen lassen.
Nicht deployt - die Images in der Registry sind unveraendert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
64 lines
2.0 KiB
Bash
Executable File
64 lines
2.0 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"
|
|
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
|
|
|
|
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"
|