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"]
