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 ..." an das # Programm durchgereicht. CMD ist der Default, den eigene Argumente ersetzen. ENTRYPOINT ["node", "./readFromcsv.js"] CMD ["-t", "noise"]