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>
32 lines
1.3 KiB
Plaintext
32 lines
1.3 KiB
Plaintext
FROM node:22-alpine
|
|
|
|
# Build-Kontext ist das Repository-Wurzelverzeichnis (siehe deploy.sh), weil
|
|
# readarchive und readin sich die Module unter common/ teilen. Das Layout im
|
|
# Image spiegelt das Repository, damit die relativen Importe (../common/...)
|
|
# unveraendert funktionieren.
|
|
|
|
ADD readarchive/package.json readarchive/package-lock.json /tmp/
|
|
RUN cd /tmp && npm ci --omit=dev
|
|
RUN mkdir -p /opt/app && cp -a /tmp/node_modules /tmp/package.json /opt/app/
|
|
|
|
ADD common/*.js /opt/app/common/
|
|
ADD readarchive/*.js /opt/app/readarchive/
|
|
ADD readarchive/package.json /opt/app/readarchive/
|
|
ADD readarchive/utilities/*.js /opt/app/readarchive/utilities/
|
|
|
|
# readFromcsv.js legt hier die Sensorliste des Tages ab (data/list.json)
|
|
RUN mkdir -p /opt/app/readarchive/data
|
|
|
|
# betrifft nur noch die Uhrzeit in den Log-Zeilen - die Messwerte selbst
|
|
# werden seit dem UTC-Fix unabhaengig von der Zeitzone der Maschine gespeichert
|
|
RUN apk add --no-cache tzdata
|
|
ENV TZ=Europe/Berlin
|
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
|
|
WORKDIR /opt/app/readarchive
|
|
|
|
# Exec-Form: nur so werden Argumente aus "docker run <image> ..." an das
|
|
# Programm durchgereicht. CMD ist der Default, den eigene Argumente ersetzen.
|
|
ENTRYPOINT ["node", "./readFromcsv.js"]
|
|
CMD ["-t", "noise"]
|