readin/readarchive: gemeinsame Module, Stack-Konventionen
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>
This commit is contained in:
@@ -43,10 +43,30 @@ services:
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
volumes:
|
||||
- ${LOCALDIR}/noisesensors/log:/var/log
|
||||
- ${LOCALDIR}/noisesensors/data:/opt/app/data
|
||||
container_name: readin
|
||||
# Pfad im Image ist jetzt /opt/app/readin, weil readin und readarchive
|
||||
# sich common/ teilen und das Layout das Repository spiegelt
|
||||
- ${LOCALDIR}/noisesensors/data:/opt/app/readin/data
|
||||
container_name: readin
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
# Kein Dauerdienst, sondern ein Lauf mit Parametern - liest rueckwirkend die
|
||||
# Tagesdateien von archive.sensor.community ein:
|
||||
# docker compose run --rm readarchive -t noise -s 2026-07-25 -e 2026-07-29
|
||||
# Das Profil verhindert, dass "docker compose up" ihn mitstartet.
|
||||
readarchive:
|
||||
image: docker.citysensor.de/readarchive
|
||||
profiles: ["tools"]
|
||||
environment:
|
||||
MONGOHOST: mongodb
|
||||
INFLUXHOST: influxdb
|
||||
MONGOAUTH: "true"
|
||||
MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD}
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
volumes:
|
||||
- ${LOCALDIR}/noisesensors/log:/var/log
|
||||
- ${LOCALDIR}/noisesensors/data/readarchive:/opt/app/readarchive/data
|
||||
restart: "no"
|
||||
|
||||
logrotate:
|
||||
image: linkyard/logrotate
|
||||
volumes:
|
||||
|
||||
Reference in New Issue
Block a user